btrfs: correct try_lock_extent() usage in read_extent_buffer_subpage()
try_lock_extent() returns 1 on success or 0 for failure and not an error code. If try_lock_extent() fails, read_extent_buffer_subpage() returns zero indicating subpage extent read success. Return EAGAIN/EWOULDBLOCK if try_lock_extent() fails in locking the extent. Reviewed-by: Qu Wenruo <wqu@suse.com> Reviewed-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
13311e7425
commit
dc56219fe2
|
@ -6184,10 +6184,8 @@ static int read_extent_buffer_subpage(struct extent_buffer *eb, int wait,
|
|||
io_tree = &BTRFS_I(fs_info->btree_inode)->io_tree;
|
||||
|
||||
if (wait == WAIT_NONE) {
|
||||
ret = try_lock_extent(io_tree, eb->start,
|
||||
eb->start + eb->len - 1);
|
||||
if (ret <= 0)
|
||||
return ret;
|
||||
if (!try_lock_extent(io_tree, eb->start, eb->start + eb->len - 1))
|
||||
return -EAGAIN;
|
||||
} else {
|
||||
ret = lock_extent(io_tree, eb->start, eb->start + eb->len - 1);
|
||||
if (ret < 0)
|
||||
|
|
Loading…
Reference in New Issue