[XFS] implement generic xfs_btree_insert/insrec
Make the btree insert 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:32202a 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
ea77b0a66e
commit
4b22a57188
@ -977,7 +977,7 @@ xfs_bmap_add_extent_delay_real(
|
||||
goto done;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 0, done);
|
||||
cur->bc_rec.b.br_state = XFS_EXT_NORM;
|
||||
if ((error = xfs_bmbt_insert(cur, &i)))
|
||||
if ((error = xfs_btree_insert(cur, &i)))
|
||||
goto done;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, done);
|
||||
}
|
||||
@ -1053,7 +1053,7 @@ xfs_bmap_add_extent_delay_real(
|
||||
goto done;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 0, done);
|
||||
cur->bc_rec.b.br_state = XFS_EXT_NORM;
|
||||
if ((error = xfs_bmbt_insert(cur, &i)))
|
||||
if ((error = xfs_btree_insert(cur, &i)))
|
||||
goto done;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, done);
|
||||
}
|
||||
@ -1143,7 +1143,7 @@ xfs_bmap_add_extent_delay_real(
|
||||
goto done;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 0, done);
|
||||
cur->bc_rec.b.br_state = XFS_EXT_NORM;
|
||||
if ((error = xfs_bmbt_insert(cur, &i)))
|
||||
if ((error = xfs_btree_insert(cur, &i)))
|
||||
goto done;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, done);
|
||||
}
|
||||
@ -1198,7 +1198,7 @@ xfs_bmap_add_extent_delay_real(
|
||||
goto done;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 0, done);
|
||||
cur->bc_rec.b.br_state = XFS_EXT_NORM;
|
||||
if ((error = xfs_bmbt_insert(cur, &i)))
|
||||
if ((error = xfs_btree_insert(cur, &i)))
|
||||
goto done;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, done);
|
||||
}
|
||||
@ -1651,7 +1651,7 @@ xfs_bmap_add_extent_unwritten_real(
|
||||
oldext)))
|
||||
goto done;
|
||||
cur->bc_rec.b = *new;
|
||||
if ((error = xfs_bmbt_insert(cur, &i)))
|
||||
if ((error = xfs_btree_insert(cur, &i)))
|
||||
goto done;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, done);
|
||||
}
|
||||
@ -1741,7 +1741,7 @@ xfs_bmap_add_extent_unwritten_real(
|
||||
goto done;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 0, done);
|
||||
cur->bc_rec.b.br_state = XFS_EXT_NORM;
|
||||
if ((error = xfs_bmbt_insert(cur, &i)))
|
||||
if ((error = xfs_btree_insert(cur, &i)))
|
||||
goto done;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, done);
|
||||
}
|
||||
@ -1789,7 +1789,7 @@ xfs_bmap_add_extent_unwritten_real(
|
||||
cur->bc_rec.b = PREV;
|
||||
cur->bc_rec.b.br_blockcount =
|
||||
new->br_startoff - PREV.br_startoff;
|
||||
if ((error = xfs_bmbt_insert(cur, &i)))
|
||||
if ((error = xfs_btree_insert(cur, &i)))
|
||||
goto done;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, done);
|
||||
/*
|
||||
@ -1804,7 +1804,7 @@ xfs_bmap_add_extent_unwritten_real(
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 0, done);
|
||||
/* new middle extent - newext */
|
||||
cur->bc_rec.b.br_state = new->br_state;
|
||||
if ((error = xfs_bmbt_insert(cur, &i)))
|
||||
if ((error = xfs_btree_insert(cur, &i)))
|
||||
goto done;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, done);
|
||||
}
|
||||
@ -2264,7 +2264,7 @@ xfs_bmap_add_extent_hole_real(
|
||||
goto done;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 0, done);
|
||||
cur->bc_rec.b.br_state = new->br_state;
|
||||
if ((error = xfs_bmbt_insert(cur, &i)))
|
||||
if ((error = xfs_btree_insert(cur, &i)))
|
||||
goto done;
|
||||
XFS_WANT_CORRUPTED_GOTO(i == 1, done);
|
||||
}
|
||||
@ -3303,7 +3303,7 @@ xfs_bmap_del_extent(
|
||||
if ((error = xfs_btree_increment(cur, 0, &i)))
|
||||
goto done;
|
||||
cur->bc_rec.b = new;
|
||||
error = xfs_bmbt_insert(cur, &i);
|
||||
error = xfs_btree_insert(cur, &i);
|
||||
if (error && error != ENOSPC)
|
||||
goto done;
|
||||
/*
|
||||
|
Reference in New Issue
Block a user