diff options
-rw-r--r-- | fs/bcachefs/fs-io.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/bcachefs/fs-io.c b/fs/bcachefs/fs-io.c index fe1330e6bd87..43a3154ee5ba 100644 --- a/fs/bcachefs/fs-io.c +++ b/fs/bcachefs/fs-io.c @@ -2366,8 +2366,11 @@ static long bch2_fcollapse(struct bch_inode_info *inode, btree_iter_err: if (ret == -EINTR) ret = 0; - if (ret) + if (ret) { + bch2_btree_iter_unlock(&src); + bch2_btree_iter_unlock(&dst); goto err_put_sectors_dirty; + } /* * XXX: if we error here we've left data with multiple * pointers... which isn't a _super_ serious problem... @@ -2393,9 +2396,6 @@ err_put_sectors_dirty: err: pagecache_block_put(&mapping->add_lock); inode_unlock(&inode->v); - - bch2_btree_iter_unlock(&src); - bch2_btree_iter_unlock(&dst); return ret; } |