[XFS] implement generic xfs_btree_delete/delrec
Make the btree delete code generic. Based on a patch from David Chinner with lots of changes to follow the original btree implementations more closely. While this loses some of the generic helper routines for inserting/moving/removing records it also solves some of the one off bugs in the original code and makes it easier to verify. SGI-PV: 985583 SGI-Modid: xfs-linux-melb:xfs-kern:32205a Signed-off-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com> Signed-off-by: Bill O'Donnell <billodo@sgi.com> Signed-off-by: David Chinner <david@fromorbit.com>
This commit is contained in:
committed by
Lachlan McIlroy
parent
d4b3a4b7dd
commit
91cca5df9b
@@ -864,7 +864,7 @@ xfs_bmap_add_extent_delay_real(
|
||||
RIGHT.br_blockcount, &i)))
|
||||
goto done;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, done);
|
||||
if ((error = xfs_bmbt_delete(cur, &i)))
|
||||
if ((error = xfs_btree_delete(cur, &i)))
|
||||
goto done;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, done);
|
||||
if ((error = xfs_btree_decrement(cur, 0, &i)))
|
||||
@@ -1425,13 +1425,13 @@ xfs_bmap_add_extent_unwritten_real(
|
||||
RIGHT.br_blockcount, &i)))
|
||||
goto done;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, done);
|
||||
if ((error = xfs_bmbt_delete(cur, &i)))
|
||||
if ((error = xfs_btree_delete(cur, &i)))
|
||||
goto done;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, done);
|
||||
if ((error = xfs_btree_decrement(cur, 0, &i)))
|
||||
goto done;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, done);
|
||||
if ((error = xfs_bmbt_delete(cur, &i)))
|
||||
if ((error = xfs_btree_delete(cur, &i)))
|
||||
goto done;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, done);
|
||||
if ((error = xfs_btree_decrement(cur, 0, &i)))
|
||||
@@ -1474,7 +1474,7 @@ xfs_bmap_add_extent_unwritten_real(
|
||||
&i)))
|
||||
goto done;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, done);
|
||||
if ((error = xfs_bmbt_delete(cur, &i)))
|
||||
if ((error = xfs_btree_delete(cur, &i)))
|
||||
goto done;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, done);
|
||||
if ((error = xfs_btree_decrement(cur, 0, &i)))
|
||||
@@ -1517,7 +1517,7 @@ xfs_bmap_add_extent_unwritten_real(
|
||||
RIGHT.br_blockcount, &i)))
|
||||
goto done;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, done);
|
||||
if ((error = xfs_bmbt_delete(cur, &i)))
|
||||
if ((error = xfs_btree_delete(cur, &i)))
|
||||
goto done;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, done);
|
||||
if ((error = xfs_btree_decrement(cur, 0, &i)))
|
||||
@@ -2152,7 +2152,7 @@ xfs_bmap_add_extent_hole_real(
|
||||
right.br_blockcount, &i)))
|
||||
goto done;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, done);
|
||||
if ((error = xfs_bmbt_delete(cur, &i)))
|
||||
if ((error = xfs_btree_delete(cur, &i)))
|
||||
goto done;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, done);
|
||||
if ((error = xfs_btree_decrement(cur, 0, &i)))
|
||||
@@ -3216,7 +3216,7 @@ xfs_bmap_del_extent(
|
||||
flags |= XFS_ILOG_FEXT(whichfork);
|
||||
break;
|
||||
}
|
||||
if ((error = xfs_bmbt_delete(cur, &i)))
|
||||
if ((error = xfs_btree_delete(cur, &i)))
|
||||
goto done;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, done);
|
||||
break;
|
||||
|
Reference in New Issue
Block a user