Add a per-inode lock around btrfs_drop_extents
authorChris Mason <chris.mason@oracle.com>
Thu, 17 Jul 2008 16:54:40 +0000 (12:54 -0400)
committerChris Mason <chris.mason@oracle.com>
Thu, 25 Sep 2008 15:04:04 +0000 (11:04 -0400)
commitee6e6504e147a59a9f4d582662c105e9d72ae638
treebe932cc04abb860ed76ab8d4c4c28353ed50bebb
parentba1da2f442ec91a1534afa893f9bef7e33056ace
Add a per-inode lock around btrfs_drop_extents

btrfs_drop_extents is always called with a range lock held on the inode.
But, it may operate on extents outside that range as it drops and splits
them.

This patch adds a per-inode mutex that is held while calling
btrfs_drop_extents and while inserting new extents into the tree.  It
prevents races from two procs working against adjacent ranges in the tree.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/btrfs_inode.h
fs/btrfs/extent-tree.c
fs/btrfs/file.c
fs/btrfs/inode.c