• Filipe Manana's avatar
    Btrfs: ioctl, don't re-lock extent range when not necessary · ff5df9b8
    Filipe Manana authored
    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: default avatarFilipe David Borba Manana <fdmanana@gmail.com>
    Signed-off-by: default avatarChris Mason <clm@fb.com>
    ff5df9b8
ioctl.c 123 KB