aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/xfs/libxfs/xfs_bmap.c23
1 files changed, 8 insertions, 15 deletions
diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c
index 0628a678de12..5a42e2ba857f 100644
--- a/fs/xfs/libxfs/xfs_bmap.c
+++ b/fs/xfs/libxfs/xfs_bmap.c
@@ -5489,32 +5489,25 @@ xfs_bmse_merge(
5489 error = xfs_bmbt_lookup_eq(cur, got.br_startoff, got.br_startblock, 5489 error = xfs_bmbt_lookup_eq(cur, got.br_startoff, got.br_startblock,
5490 got.br_blockcount, &i); 5490 got.br_blockcount, &i);
5491 if (error) 5491 if (error)
5492 goto out_error; 5492 return error;
5493 XFS_WANT_CORRUPTED_GOTO(i == 1, out_error); 5493 XFS_WANT_CORRUPTED_RETURN(i == 1);
5494 5494
5495 error = xfs_btree_delete(cur, &i); 5495 error = xfs_btree_delete(cur, &i);
5496 if (error) 5496 if (error)
5497 goto out_error; 5497 return error;
5498 XFS_WANT_CORRUPTED_GOTO(i == 1, out_error); 5498 XFS_WANT_CORRUPTED_RETURN(i == 1);
5499 5499
5500 /* lookup and update size of the previous extent */ 5500 /* lookup and update size of the previous extent */
5501 error = xfs_bmbt_lookup_eq(cur, left.br_startoff, left.br_startblock, 5501 error = xfs_bmbt_lookup_eq(cur, left.br_startoff, left.br_startblock,
5502 left.br_blockcount, &i); 5502 left.br_blockcount, &i);
5503 if (error) 5503 if (error)
5504 goto out_error; 5504 return error;
5505 XFS_WANT_CORRUPTED_GOTO(i == 1, out_error); 5505 XFS_WANT_CORRUPTED_RETURN(i == 1);
5506 5506
5507 left.br_blockcount = blockcount; 5507 left.br_blockcount = blockcount;
5508 5508
5509 error = xfs_bmbt_update(cur, left.br_startoff, left.br_startblock, 5509 return xfs_bmbt_update(cur, left.br_startoff, left.br_startblock,
5510 left.br_blockcount, left.br_state); 5510 left.br_blockcount, left.br_state);
5511 if (error)
5512 goto out_error;
5513
5514 return 0;
5515
5516out_error:
5517 return error;
5518} 5511}
5519 5512
5520/* 5513/*