xfs: fix number of records handling in xfs_iext_split_leaf
Fix to check the correct value, and remove a duplicate handling of the uneven record number split algorith, Reported-by: Brian Foster <bfoster@redhat.com> Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Brian Foster <bfoster@redhat.com> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
This commit is contained in:
parent
478f8da0f7
commit
43d193aa02
|
@ -555,16 +555,13 @@ xfs_iext_split_leaf(
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* for sequential append operations just spill over into the new node */
|
/* for sequential append operations just spill over into the new node */
|
||||||
if (cur->pos == KEYS_PER_NODE) {
|
if (cur->pos == RECS_PER_LEAF) {
|
||||||
cur->leaf = new;
|
cur->leaf = new;
|
||||||
cur->pos = 0;
|
cur->pos = 0;
|
||||||
*nr_entries = 0;
|
*nr_entries = 0;
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nr_keep & 1)
|
|
||||||
nr_keep++;
|
|
||||||
|
|
||||||
for (i = 0; i < nr_move; i++) {
|
for (i = 0; i < nr_move; i++) {
|
||||||
new->recs[i] = leaf->recs[nr_keep + i];
|
new->recs[i] = leaf->recs[nr_keep + i];
|
||||||
xfs_iext_rec_clear(&leaf->recs[nr_keep + i]);
|
xfs_iext_rec_clear(&leaf->recs[nr_keep + i]);
|
||||||
|
|
Loading…
Reference in New Issue