android_kernel_xiaomi_sm7250/fs/btrfs
Chris Mason 3b951516ed Btrfs: Use the extent map cache to find the logical disk block during data retries
The data read retry code needs to find the logical disk block before it
can resubmit new bios.  But, finding this block isn't allowed to take
the fs_mutex because that will deadlock with a number of different callers.

This changes the retry code to use the extent map cache instead, but
that requires the extent map cache to have the extent we're looking for.
This is a problem because btrfs_drop_extent_cache just drops the entire
extent instead of the little tiny part it is invalidating.

The bulk of the code in this patch changes btrfs_drop_extent_cache to
invalidate only a portion of the extent cache, and changes btrfs_get_extent
to deal with the results.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -04:00
..
acl.c Btrfs: Include sched.h in the acl code for current (fixes compile on 2.6.23) 2008-09-25 11:03:59 -04:00
bit-radix.c Btrfs: trivial include fixups 2007-07-11 10:00:37 -04:00
bit-radix.h Btrfs: add GPLv2 2007-06-12 09:07:21 -04:00
btrfs_inode.h Btrfs: Handle checksumming errors while reading data blocks 2008-09-25 11:04:01 -04:00
COPYING Btrfs: add GPLv2 2007-06-12 09:07:21 -04:00
crc32c.h Btrfs: Endianess bug fix for v0.13 with kernels 2008-09-25 11:04:01 -04:00
ctree.c Btrfs: Don't wait on tree block writeback before freeing them anymore 2008-09-25 11:04:01 -04:00
ctree.h Btrfs: Write bio checksumming outside the FS mutex 2008-09-25 11:04:01 -04:00
dir-item.c Btrfs: unaligned access fixes 2008-09-25 11:04:00 -04:00
disk-io.c Btrfs: Only do async bio submission for pdflush 2008-09-25 11:04:01 -04:00
disk-io.h Btrfs: Create a work queue for bio writes 2008-09-25 11:04:01 -04:00
extent_io.c Btrfs: Use the extent map cache to find the logical disk block during data retries 2008-09-25 11:04:01 -04:00
extent_io.h Btrfs: Create a work queue for bio writes 2008-09-25 11:04:01 -04:00
extent_map.c Btrfs: Split the extent_map code into two parts 2008-09-25 11:03:59 -04:00
extent_map.h Btrfs: Split the extent_map code into two parts 2008-09-25 11:03:59 -04:00
extent-tree.c Btrfs: Use the extent map cache to find the logical disk block during data retries 2008-09-25 11:04:01 -04:00
file-item.c Btrfs: Write bio checksumming outside the FS mutex 2008-09-25 11:04:01 -04:00
file.c Btrfs: Use the extent map cache to find the logical disk block during data retries 2008-09-25 11:04:01 -04:00
hash.c btrfs-progs: Stop stomping on 'name' input parameter 2008-09-25 11:04:01 -04:00
hash.h Btrfs: unaligned access fixes 2008-09-25 11:04:00 -04:00
inode-item.c Btrfs: Add back pointers from the inode to the directory that references it 2008-09-25 11:03:58 -04:00
inode-map.c Fix for btrfs_find_free_objectid 2008-09-25 11:03:59 -04:00
inode.c Btrfs: Use the extent map cache to find the logical disk block during data retries 2008-09-25 11:04:01 -04:00
INSTALL Btrfs: Documentation update 2007-06-22 14:49:31 -04:00
ioctl.h Btrfs: Add support for device scanning and detection ioctls 2008-09-25 11:04:01 -04:00
Makefile Btrfs: Add support for multiple devices per filesystem 2008-09-25 11:04:00 -04:00
ordered-data.c Btrfs: Fix data=ordered vs wait_on_inode deadlock on older kernels 2008-09-25 11:03:59 -04:00
ordered-data.h Btrfs: Fix data=ordered vs wait_on_inode deadlock on older kernels 2008-09-25 11:03:59 -04:00
print-tree.c Btrfs: Add chunk uuids and update multi-device back references 2008-09-25 11:04:01 -04:00
print-tree.h Btrfs: Create extent_buffer interface for large blocksizes 2008-09-25 11:03:56 -04:00
root-tree.c Btrfs: Change st_blocksize to 4k 2008-09-25 11:03:59 -04:00
struct-funcs.c Btrfs: unaligned access fixes 2008-09-25 11:04:00 -04:00
super.c Fix btrfs_fill_super to return -EINVAL when no FS found 2008-09-25 11:04:01 -04:00
sysfs.c Btrfs: Disable sysfs files on older kernels 2008-09-25 11:04:00 -04:00
TODO Btrfs: add GPLv2 2007-06-12 09:07:21 -04:00
transaction.c Btrfs: Do metadata checksums for reads via a workqueue 2008-09-25 11:04:01 -04:00
transaction.h Btrfs: Split the extent_map code into two parts 2008-09-25 11:03:59 -04:00
tree-defrag.c Btrfs: Verify checksums on tree blocks found without read_tree_block 2008-09-25 11:04:01 -04:00
volumes.c Btrfs: Use the extent map cache to find the logical disk block during data retries 2008-09-25 11:04:01 -04:00
volumes.h Btrfs: Add chunk uuids and update multi-device back references 2008-09-25 11:04:01 -04:00
xattr.c Btrfs: Fix compile on kernel without ACLs enabled 2008-09-25 11:03:59 -04:00
xattr.h xattr support for btrfs 2008-09-25 11:03:57 -04:00