summaryrefslogtreecommitdiff
path: root/fs/xfs/xfs_bmap_item.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/xfs/xfs_bmap_item.c')
-rw-r--r--fs/xfs/xfs_bmap_item.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/xfs/xfs_bmap_item.c b/fs/xfs/xfs_bmap_item.c
index fd56f354cf20..b9bcdb84bdfe 100644
--- a/fs/xfs/xfs_bmap_item.c
+++ b/fs/xfs/xfs_bmap_item.c
@@ -530,12 +530,13 @@ xfs_bui_item_recover(
}
error = xlog_recover_trans_commit(tp, dfcp);
- xfs_iunlock(ip, XFS_ILOCK_EXCL);
- xfs_irele(ip);
- return error;
+ if (error)
+ goto err_rele;
+ return xfs_defer_capture_inode(*dfcp, ip);
err_inode:
xfs_trans_cancel(tp);
+err_rele:
if (ip) {
xfs_iunlock(ip, XFS_ILOCK_EXCL);
xfs_irele(ip);