]> git.baikalelectronics.ru Git - kernel.git/commit
Btrfs: ioctl, don't re-lock extent range when not necessary
authorFilipe Manana <fdmanana@gmail.com>
Fri, 30 May 2014 16:56:24 +0000 (17:56 +0100)
committerChris Mason <clm@fb.com>
Tue, 10 Jun 2014 00:21:04 +0000 (17:21 -0700)
commitd5af88b56ad58f0c95c95f787a7bd9b86f450c93
treec942369f927e23f4e62dcddeb8afee5fecf382ce
parente5a37164866bd6d663708bdf55c5f70ff7ad6bb8
Btrfs: ioctl, don't re-lock extent range when not necessary

In ioctl.c:lock_extent_range(), after locking our target range, the
ordered extent that btrfs_lookup_first_ordered_extent() returns us
may not overlap our target range at all. In this case we would just
unlock our target range, wait for any new ordered extents that overlap
the range to complete, lock again the range and repeat all these steps
until we don't get any ordered extent and the delalloc flag isn't set
in the io tree for our target range.

Therefore just stop if we get an ordered extent that doesn't overlap
our target range and the dealalloc flag isn't set for the range in
the inode's io tree.

Signed-off-by: Filipe David Borba Manana <fdmanana@gmail.com>
Signed-off-by: Chris Mason <clm@fb.com>
fs/btrfs/ioctl.c