Commit 9bfd61d9 authored by Nikolay Borisov's avatar Nikolay Borisov Committed by David Sterba

btrfs: Replace BUG_ON with ASSERT in find_lock_delalloc_range

lock_delalloc_pages should only return 2 values - 0 in case of success
and -EAGAIN if the range of pages to be locked should be shrunk due to
some of gone. Manual inspections confirms that this is indeed the case
since __process_pages_contig is where lock_delalloc_pages gets its
return value. The latter always returns 0  or -EAGAIN so the invariant
holds. No functional changes.
Reviewed-by: default avatarQu Wenruo <wqu@suse.com>
Reviewed-by: default avatarAnand Jain <anand.jain@oracle.com>
Signed-off-by: default avatarNikolay Borisov <nborisov@suse.com>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 917aacec
...@@ -1599,6 +1599,7 @@ static noinline_for_stack u64 find_lock_delalloc_range(struct inode *inode, ...@@ -1599,6 +1599,7 @@ static noinline_for_stack u64 find_lock_delalloc_range(struct inode *inode,
/* step two, lock all the pages after the page that has start */ /* step two, lock all the pages after the page that has start */
ret = lock_delalloc_pages(inode, locked_page, ret = lock_delalloc_pages(inode, locked_page,
delalloc_start, delalloc_end); delalloc_start, delalloc_end);
ASSERT(!ret || ret == -EAGAIN);
if (ret == -EAGAIN) { if (ret == -EAGAIN) {
/* some of the pages are gone, lets avoid looping by /* some of the pages are gone, lets avoid looping by
* shortening the size of the delalloc range we're searching * shortening the size of the delalloc range we're searching
...@@ -1614,7 +1615,6 @@ static noinline_for_stack u64 find_lock_delalloc_range(struct inode *inode, ...@@ -1614,7 +1615,6 @@ static noinline_for_stack u64 find_lock_delalloc_range(struct inode *inode,
goto out_failed; goto out_failed;
} }
} }
BUG_ON(ret); /* Only valid values are 0 and -EAGAIN */
/* step three, lock the state bits for the whole range */ /* step three, lock the state bits for the whole range */
lock_extent_bits(tree, delalloc_start, delalloc_end, &cached_state); lock_extent_bits(tree, delalloc_start, delalloc_end, &cached_state);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment