android_kernel_xiaomi_sm7250/fs/btrfs
Chris Mason f87f057b49 Btrfs: Improve and cleanup locking done by walk_down_tree
While dropping snapshots, walk_down_tree does most of the work of checking
reference counts and limiting tree traversal to just the blocks that
we are freeing.

It dropped and held the allocation mutex in strange and confusing ways,
this commit changes it to only hold the mutex while actually freeing a block.

The rest of the checks around reference counts should be safe without the lock
because we only allow one process in btrfs_drop_snapshot at a time.  Other
processes dropping reference counts should not drop it to 1 because
their tree roots already have an extra ref on the block.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:06 -04:00
..
acl.c Btrfs: Add ACL support 2008-09-25 11:04:05 -04:00
async-thread.c Btrfs: Fix streaming read performance with checksumming on 2008-09-25 11:04:05 -04:00
async-thread.h Btrfs: Worker thread optimizations 2008-09-25 11:04:03 -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: Create orphan inode records to prevent lost files after a crash 2008-09-25 11:04:05 -04:00
compat.h Btrfs: Add workaround for AppArmor changing remove_suid() 2008-09-25 11:04:02 -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: implement memory reclaim for leaf reference cache 2008-09-25 11:04:05 -04:00
ctree.h Btrfs: Fix streaming read performance with checksumming on 2008-09-25 11:04:05 -04:00
dir-item.c Btrfs: implement memory reclaim for leaf reference cache 2008-09-25 11:04:05 -04:00
disk-io.c Btrfs: Fix streaming read performance with checksumming on 2008-09-25 11:04:05 -04:00
disk-io.h Btrfs: Online btree defragmentation fixes 2008-09-25 11:04:04 -04:00
extent_io.c Btrfs: Add compatibility for kernels >= 2.6.27-rc1 2008-09-25 11:04:05 -04:00
extent_io.h Btrfs: Fix some data=ordered related data corruptions 2008-09-25 11:04:05 -04:00
extent_map.c Btrfs: Use assert_spin_locked instead of spin_trylock 2008-09-25 11:04:05 -04:00
extent_map.h Btrfs: Fix some data=ordered related data corruptions 2008-09-25 11:04:05 -04:00
extent-tree.c Btrfs: Improve and cleanup locking done by walk_down_tree 2008-09-25 11:04:06 -04:00
file-item.c Btrfs: Fix streaming read performance with checksumming on 2008-09-25 11:04:05 -04:00
file.c Btrfs: Improve and cleanup locking done by walk_down_tree 2008-09-25 11:04:06 -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: Implement new dir index format 2008-09-25 11:04:05 -04:00
inode-map.c Btrfs: Replace the big fs_mutex with a collection of other locks 2008-09-25 11:04:03 -04:00
inode.c Btrfs: Drop some debugging around the extent_map pinned flag 2008-09-25 11:04:05 -04:00
INSTALL Btrfs: Documentation update 2007-06-22 14:49:31 -04:00
ioctl.c Btrfs: Improve and cleanup locking done by walk_down_tree 2008-09-25 11:04:06 -04:00
ioctl.h Btrfs: transaction ioctls 2008-09-25 11:04:03 -04:00
locking.c Btrfs: implement memory reclaim for leaf reference cache 2008-09-25 11:04:05 -04:00
locking.h Btrfs: Start btree concurrency work. 2008-09-25 11:04:03 -04:00
Makefile Btrfs: Add a leaf reference cache 2008-09-25 11:04:05 -04:00
ordered-data.c Btrfs: Fix the defragmention code and the block relocation code for data=ordered 2008-09-25 11:04:05 -04:00
ordered-data.h Btrfs: Fix the defragmention code and the block relocation code for data=ordered 2008-09-25 11:04:05 -04:00
orphan.c Btrfs: Create orphan inode records to prevent lost files after a crash 2008-09-25 11:04:05 -04:00
print-tree.c Btrfs: implement memory reclaim for leaf reference cache 2008-09-25 11:04:05 -04:00
print-tree.h Btrfs: Create extent_buffer interface for large blocksizes 2008-09-25 11:03:56 -04:00
ref-cache.c Btrfs: implement memory reclaim for leaf reference cache 2008-09-25 11:04:05 -04:00
ref-cache.h Btrfs: implement memory reclaim for leaf reference cache 2008-09-25 11:04:05 -04:00
root-tree.c Btrfs: Fix deadlock while searching for dead roots on mount 2008-09-25 11:04:04 -04:00
struct-funcs.c Btrfs: unaligned access fixes 2008-09-25 11:04:00 -04:00
super.c Btrfs: Add ACL support 2008-09-25 11:04:05 -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: Throttle tuning 2008-09-25 11:04:05 -04:00
transaction.h Btrfs: Update and fix mount -o nodatacow 2008-09-25 11:04:05 -04:00
tree-defrag.c Btrfs: Online btree defragmentation fixes 2008-09-25 11:04:04 -04:00
version.sh Btrfs: Fix version.sh when used outside of an hg repo 2008-09-25 11:04:05 -04:00
volumes.c Btrfs: Hold a reference on bios during submit_bio, add some extra bio checks 2008-09-25 11:04:05 -04:00
volumes.h Btrfs: Add async worker threads for pre and post IO checksumming 2008-09-25 11:04:03 -04:00
xattr.c Btrfs: Add ACL support 2008-09-25 11:04:05 -04:00
xattr.h xattr support for btrfs 2008-09-25 11:03:57 -04:00