linux/fs/btrfs
Yan Zheng 6643558db2 Btrfs: Fix bookend extent race v2
When dropping middle part of an extent, btrfs_drop_extents truncates
the extent at first, then inserts a bookend extent.

Since truncation and insertion can't be done atomically, there is a small
period that the bookend extent isn't in the tree. This causes problem for
functions that search the tree for file extent item. The way to fix this is
lock the range of the bookend extent before truncation.

Signed-off-by: Yan Zheng <zheng.yan@oracle.com>
2008-10-30 14:19:50 -04:00
..
COPYING Btrfs: add GPLv2 2007-06-12 09:07:21 -04:00
INSTALL Btrfs: Documentation update 2007-06-22 14:49:31 -04:00
Makefile Btrfs: Add zlib compression support 2008-10-29 14:49:59 -04:00
acl.c Btrfs: optimize btrget/set/removexattr 2008-09-25 11:04:07 -04:00
async-thread.c Btrfs: fix multi-device code to use raid policies set by mkfs 2008-09-30 19:36:34 -04:00
async-thread.h Btrfs: add and improve comments 2008-09-29 15:18:18 -04:00
btrfs_inode.h Btrfs: add and improve comments 2008-09-29 15:18:18 -04:00
compat.h Remove Btrfs compat code for older kernels 2008-09-25 15:41:59 -04:00
compression.c Btrfs: walk compressed pages based on the nr_pages count instead of bytes 2008-10-30 13:22:14 -04:00
compression.h Btrfs: Add zlib compression support 2008-10-29 14:49:59 -04:00
crc32c.h Btrfs: add and improve comments 2008-09-29 15:18:18 -04:00
ctree.c Btrfs: nuke fs wide allocation mutex V2 2008-10-29 14:49:05 -04:00
ctree.h Btrfs: update hole handling v2 2008-10-30 14:19:41 -04:00
dir-item.c Btrfs: add and improve comments 2008-09-29 15:18:18 -04:00
disk-io.c Btrfs: Add root tree pointer transaction ids 2008-10-29 14:49:05 -04:00
disk-io.h Btrfs: Add zlib compression support 2008-10-29 14:49:59 -04:00
export.c Remove Btrfs compat code for older kernels 2008-09-25 15:41:59 -04:00
export.h NFS support for btrfs - v3 2008-09-25 11:04:06 -04:00
extent-tree.c Btrfs: Fix bookend extent race v2 2008-10-30 14:19:50 -04:00
extent_io.c Btrfs: Fix bookend extent race v2 2008-10-30 14:19:50 -04:00
extent_io.h Btrfs: nuke fs wide allocation mutex V2 2008-10-29 14:49:05 -04:00
extent_map.c Btrfs: Add zlib compression support 2008-10-29 14:49:59 -04:00
extent_map.h Btrfs: update hole handling v2 2008-10-30 14:19:41 -04:00
file-item.c Btrfs: Add zlib compression support 2008-10-29 14:49:59 -04:00
file.c Btrfs: Fix bookend extent race v2 2008-10-30 14:19:50 -04:00
free-space-cache.c Btrfs: nuke fs wide allocation mutex V2 2008-10-29 14:49:05 -04:00
hash.h Switch btrfs_name_hash() to crc32c 2008-09-25 11:04:06 -04:00
inode-item.c Btrfs: Implement new dir index format 2008-09-25 11:04:05 -04:00
inode-map.c Btrfs: extent_map and data=ordered fixes for space balancing 2008-09-26 10:05:38 -04:00
inode.c Btrfs: Fix bookend extent race v2 2008-10-30 14:19:50 -04:00
ioctl.c Btrfs: Add root tree pointer transaction ids 2008-10-29 14:49:05 -04:00
ioctl.h Btrfs: transaction ioctls 2008-09-25 11:04:03 -04:00
locking.c Btrfs: add and improve comments 2008-09-29 15:18:18 -04:00
locking.h btrfs_search_slot: reduce lock contention by cowing in two stages 2008-09-25 11:04:06 -04:00
ordered-data.c Btrfs: Add zlib compression support 2008-10-29 14:49:59 -04:00
ordered-data.h Btrfs: Add zlib compression support 2008-10-29 14:49:59 -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: Add zlib compression support 2008-10-29 14:49:59 -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: add and improve comments 2008-09-29 15:18:18 -04:00
ref-cache.h Btrfs: add and improve comments 2008-09-29 15:18:18 -04:00
root-tree.c Btrfs: add and improve comments 2008-09-29 15:18:18 -04:00
struct-funcs.c Btrfs: add and improve comments 2008-09-29 15:18:18 -04:00
super.c Btrfs: Add zlib compression support 2008-10-29 14:49:59 -04:00
sysfs.c Remove Btrfs compat code for older kernels 2008-09-25 15:41:59 -04:00
transaction.c Btrfs: prevent looping forever in finish_current_insert and del_pending_extents 2008-10-30 11:23:27 -04:00
transaction.h Btrfs: Record dirty pages tree-log pages in an extent_io tree 2008-09-25 11:04:07 -04:00
tree-defrag.c Btrfs: nuke fs wide allocation mutex V2 2008-10-29 14:49:05 -04:00
tree-log.c Btrfs: Add root tree pointer transaction ids 2008-10-29 14:49:05 -04:00
tree-log.h Btrfs: Add a write ahead tree log to optimize synchronous operations 2008-09-25 11:04:07 -04:00
version.h Update Btrfs files for in-kernel usage 2008-09-25 15:41:59 -04:00
version.sh Btrfs: Update version.sh to v0.16 2008-09-25 11:04:06 -04:00
volumes.c Btrfs: nuke fs wide allocation mutex V2 2008-10-29 14:49:05 -04:00
volumes.h Btrfs: Fix the multi-bio code to save the original bio for completion 2008-09-25 11:04:06 -04:00
xattr.c Btrfs: optimize btrget/set/removexattr 2008-09-25 11:04:07 -04:00
xattr.h Btrfs: optimize btrget/set/removexattr 2008-09-25 11:04:07 -04:00
zlib.c Btrfs: Add zlib compression support 2008-10-29 14:49:59 -04:00