mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
[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:
parent
d4b3a4b7dd
commit
91cca5df9b
11 changed files with 723 additions and 1839 deletions
|
@ -398,7 +398,7 @@ xfs_alloc_fixup_trees(
|
|||
/*
|
||||
* Delete the entry from the by-size btree.
|
||||
*/
|
||||
if ((error = xfs_alloc_delete(cnt_cur, &i)))
|
||||
if ((error = xfs_btree_delete(cnt_cur, &i)))
|
||||
return error;
|
||||
XFS_WANT_CORRUPTED_RETURN(i == 1);
|
||||
/*
|
||||
|
@ -427,7 +427,7 @@ xfs_alloc_fixup_trees(
|
|||
/*
|
||||
* No remaining freespace, just delete the by-block tree entry.
|
||||
*/
|
||||
if ((error = xfs_alloc_delete(bno_cur, &i)))
|
||||
if ((error = xfs_btree_delete(bno_cur, &i)))
|
||||
return error;
|
||||
XFS_WANT_CORRUPTED_RETURN(i == 1);
|
||||
} else {
|
||||
|
@ -1651,7 +1651,7 @@ xfs_free_ag_extent(
|
|||
if ((error = xfs_alloc_lookup_eq(cnt_cur, ltbno, ltlen, &i)))
|
||||
goto error0;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, error0);
|
||||
if ((error = xfs_alloc_delete(cnt_cur, &i)))
|
||||
if ((error = xfs_btree_delete(cnt_cur, &i)))
|
||||
goto error0;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, error0);
|
||||
/*
|
||||
|
@ -1660,13 +1660,13 @@ xfs_free_ag_extent(
|
|||
if ((error = xfs_alloc_lookup_eq(cnt_cur, gtbno, gtlen, &i)))
|
||||
goto error0;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, error0);
|
||||
if ((error = xfs_alloc_delete(cnt_cur, &i)))
|
||||
if ((error = xfs_btree_delete(cnt_cur, &i)))
|
||||
goto error0;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, error0);
|
||||
/*
|
||||
* Delete the old by-block entry for the right block.
|
||||
*/
|
||||
if ((error = xfs_alloc_delete(bno_cur, &i)))
|
||||
if ((error = xfs_btree_delete(bno_cur, &i)))
|
||||
goto error0;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, error0);
|
||||
/*
|
||||
|
@ -1711,7 +1711,7 @@ xfs_free_ag_extent(
|
|||
if ((error = xfs_alloc_lookup_eq(cnt_cur, ltbno, ltlen, &i)))
|
||||
goto error0;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, error0);
|
||||
if ((error = xfs_alloc_delete(cnt_cur, &i)))
|
||||
if ((error = xfs_btree_delete(cnt_cur, &i)))
|
||||
goto error0;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, error0);
|
||||
/*
|
||||
|
@ -1737,7 +1737,7 @@ xfs_free_ag_extent(
|
|||
if ((error = xfs_alloc_lookup_eq(cnt_cur, gtbno, gtlen, &i)))
|
||||
goto error0;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, error0);
|
||||
if ((error = xfs_alloc_delete(cnt_cur, &i)))
|
||||
if ((error = xfs_btree_delete(cnt_cur, &i)))
|
||||
goto error0;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, error0);
|
||||
/*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue