linux/fs/btrfs
Miao Xie f612496bca Btrfs: cleanup the read failure record after write or when the inode is freeing
After the data is written successfully, we should cleanup the read failure record
in that range because
- If we set data COW for the file, the range that the failure record pointed to is
  mapped to a new place, so it is invalid.
- If we set no data COW for the file, and if there is no error during writting,
  the corrupted data is corrected, so the failure record can be removed. And if
  some errors happen on the mirrors, we also needn't worry about it because the
  failure record will be recreated if we read the same place again.

Sometimes, we may fail to correct the data, so the failure records will be left
in the tree, we need free them when we free the inode or the memory leak happens.

Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Chris Mason <clm@fb.com>
2014-09-17 13:39:02 -07:00
..
tests Btrfs: improve free space cache management and space allocation 2014-09-17 13:38:13 -07:00
acl.c btrfs: remove useless ACL check 2014-06-09 17:20:42 -07:00
async-thread.c Btrfs: implement repair function when direct read fails 2014-09-17 13:39:01 -07:00
async-thread.h Btrfs: implement repair function when direct read fails 2014-09-17 13:39:01 -07:00
backref.c Btrfs: make fiemap not blow when you have lots of snapshots 2014-09-17 13:38:24 -07:00
backref.h Btrfs: make fiemap not blow when you have lots of snapshots 2014-09-17 13:38:24 -07:00
btrfs_inode.h Btrfs: implement repair function when direct read fails 2014-09-17 13:39:01 -07:00
check-integrity.c Btrfs: fix wrong disk size when writing super blocks 2014-09-17 13:38:33 -07:00
check-integrity.h block: submit_bio_wait() conversions 2013-11-24 16:33:41 -07:00
compression.c btrfs: use DIV_ROUND_UP instead of open-coded variants 2014-09-17 13:37:17 -07:00
compression.h
ctree.c Btrfs: make btrfs_search_forward return with nodes unlocked 2014-09-17 13:38:02 -07:00
ctree.h Btrfs: implement repair function when direct read fails 2014-09-17 13:39:01 -07:00
delayed-inode.c btrfs: kill the key type accessor helpers 2014-09-17 13:37:12 -07:00
delayed-inode.h Btrfs: introduce the delayed inode ref deletion for the single link inode 2014-01-28 13:20:09 -08:00
delayed-ref.c Btrfs: rework qgroup accounting 2014-06-09 17:20:48 -07:00
delayed-ref.h Btrfs: rework qgroup accounting 2014-06-09 17:20:48 -07:00
dev-replace.c Btrfs: make the logic of source device removing more clear 2014-09-17 13:38:46 -07:00
dev-replace.h
dir-item.c btrfs: kill the key type accessor helpers 2014-09-17 13:37:12 -07:00
disk-io.c Btrfs: implement repair function when direct read fails 2014-09-17 13:39:01 -07:00
disk-io.h Btrfs: implement repair function when direct read fails 2014-09-17 13:39:01 -07:00
export.c btrfs: kill the key type accessor helpers 2014-09-17 13:37:12 -07:00
export.h
extent_io.c Btrfs: cleanup the read failure record after write or when the inode is freeing 2014-09-17 13:39:02 -07:00
extent_io.h Btrfs: cleanup the read failure record after write or when the inode is freeing 2014-09-17 13:39:02 -07:00
extent_map.c Btrfs: fix NULL pointer crash when running balance and scrub concurrently 2014-06-19 14:20:55 -07:00
extent_map.h Btrfs: fix NULL pointer crash when running balance and scrub concurrently 2014-06-19 14:20:55 -07:00
extent-tree.c Btrfs: Fix misuse of chunk mutex 2014-09-17 13:38:42 -07:00
file-item.c Btrfs: load checksum data once when submitting a direct read io 2014-09-17 13:38:50 -07:00
file.c btrfs: use DIV_ROUND_UP instead of open-coded variants 2014-09-17 13:37:17 -07:00
free-space-cache.c Btrfs: improve free space cache management and space allocation 2014-09-17 13:38:13 -07:00
free-space-cache.h
hash.c btrfs: use PTR_ERR_OR_ZERO 2014-09-17 13:37:29 -07:00
hash.h Btrfs: fix btrfs boot when compiled as built-in 2014-01-28 13:20:31 -08:00
inode-item.c btrfs: kill the key type accessor helpers 2014-09-17 13:37:12 -07:00
inode-map.c btrfs: cleanup ino cache members of btrfs_root 2014-09-17 13:37:09 -07:00
inode-map.h
inode.c Btrfs: cleanup the read failure record after write or when the inode is freeing 2014-09-17 13:39:02 -07:00
ioctl.c Btrfs: fix unprotected device's variants on 32bits machine 2014-09-17 13:38:38 -07:00
Kconfig Btrfs: fix btrfs boot when compiled as built-in 2014-01-28 13:20:31 -08:00
locking.c Btrfs: fix deadlocks with trylock on tree nodes 2014-06-19 14:19:55 -07:00
locking.h
lzo.c btrfs: use DIV_ROUND_UP instead of open-coded variants 2014-09-17 13:37:17 -07:00
Makefile Btrfs: add sanity tests for new qgroup accounting code 2014-06-09 17:20:49 -07:00
math.h
ordered-data.c Btrfs: fix task hang under heavy compressed write 2014-08-24 07:17:02 -07:00
ordered-data.h btrfs: disable strict file flushes for renames and truncates 2014-08-15 07:43:42 -07:00
orphan.c btrfs: kill the key type accessor helpers 2014-09-17 13:37:12 -07:00
print-tree.c btrfs: use nodesize everywhere, kill leafsize 2014-09-17 13:37:14 -07:00
print-tree.h
props.c Btrfs: add support for inode properties 2014-01-28 13:20:24 -08:00
props.h Btrfs: add support for inode properties 2014-01-28 13:20:24 -08:00
qgroup.c btrfs: don't go readonly on existing qgroup items 2014-09-17 13:38:19 -07:00
qgroup.h btrfs: qgroup: account shared subtrees during snapshot delete 2014-08-15 07:43:14 -07:00
raid56.c btrfs: use DIV_ROUND_UP instead of open-coded variants 2014-09-17 13:37:17 -07:00
raid56.h
rcu-string.h
reada.c btrfs: use nodesize everywhere, kill leafsize 2014-09-17 13:37:14 -07:00
relocation.c btrfs: use nodesize everywhere, kill leafsize 2014-09-17 13:37:14 -07:00
root-tree.c Btrfs: use bitfield instead of integer data type for the some variants in btrfs_root 2014-06-09 17:20:40 -07:00
scrub.c Btrfs: modify clean_io_failure and make it suit direct io 2014-09-17 13:38:59 -07:00
send.c Btrfs: send, lower mem requirements for processing xattrs 2014-09-17 13:38:16 -07:00
send.h
struct-funcs.c
super.c Btrfs: fix unprotected device list access when getting the fs information 2014-09-17 13:38:41 -07:00
sysfs.c btrfs: sysfs label interface should check for read only FS 2014-09-17 13:38:01 -07:00
sysfs.h btrfs: code optimize: BTRFS_ATTR_RW could set the mode 2014-09-17 13:37:59 -07:00
transaction.c Btrfs: fix wrong device bytes_used in the super block 2014-09-17 13:38:34 -07:00
transaction.h btrfs: disable strict file flushes for renames and truncates 2014-08-15 07:43:42 -07:00
tree-defrag.c Btrfs: use bitfield instead of integer data type for the some variants in btrfs_root 2014-06-09 17:20:40 -07:00
tree-log.c Btrfs: fix directory recovery from fsync log 2014-09-17 13:38:27 -07:00
tree-log.h Btrfs: fix fsync data loss after a ranged fsync 2014-09-08 13:56:43 -07:00
ulist.c Btrfs: do not export ulist functions 2014-01-29 07:06:27 -08:00
ulist.h Btrfs: Fix memory corruption by ulist_add_merge() on 32bit arch 2014-08-15 07:43:19 -07:00
uuid-tree.c Btrfs: make btrfs_search_forward return with nodes unlocked 2014-09-17 13:38:02 -07:00
volumes.c Btrfs: Set real mirror number for read operation on RAID0/5/6 2014-09-17 13:39:00 -07:00
volumes.h Btrfs: do file data check by sub-bio's self 2014-09-17 13:38:53 -07:00
xattr.c btrfs: kill the key type accessor helpers 2014-09-17 13:37:12 -07:00
xattr.h btrfs: use generic posix ACL infrastructure 2014-01-25 23:58:18 -05:00
zlib.c btrfs compression: merge inflate and deflate z_streams 2014-09-17 13:37:33 -07:00