Btrfs: Fix bookend extent race v2
authorYan Zheng <zheng.yan@oracle.com>
Thu, 30 Oct 2008 18:19:50 +0000 (14:19 -0400)
committerChris Mason <chris.mason@oracle.com>
Thu, 30 Oct 2008 18:19:50 +0000 (14:19 -0400)
commit6643558db29006825dbb10012b3f8890aca4bcd5
tree0c0f4f7a0011749cda998431828cb9161747b51a
parent9036c10208e1fc496cef7692ba66a78699b360dc
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>
fs/btrfs/extent-tree.c
fs/btrfs/extent_io.c
fs/btrfs/file.c
fs/btrfs/inode.c