This if statement is reversed leading to locking issues. Fixes: 8e603cfe05f0 ("btrfs: convert copy_inline_to_page() to use folio") Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> --- This patch is obviously correct but it's from static analysis so additional testing would be good as well. fs/btrfs/reflink.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/btrfs/reflink.c b/fs/btrfs/reflink.c index 1681d63f03dd..f0824c948cb7 100644 --- a/fs/btrfs/reflink.c +++ b/fs/btrfs/reflink.c @@ -146,7 +146,7 @@ static int copy_inline_to_page(struct btrfs_inode *inode, btrfs_folio_clear_checked(fs_info, folio, file_offset, block_size); btrfs_folio_set_dirty(fs_info, folio, file_offset, block_size); out_unlock: - if (IS_ERR(folio)) { + if (!IS_ERR(folio)) { folio_unlock(folio); folio_put(folio); } -- 2.43.0