aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2017-11-16 22:11:35 -0600
committerEric Sandeen <sandeen@redhat.com>2017-11-16 22:11:35 -0600
commitfd4c3ba5ec7e7f10db7b87fd5292483886dad213 (patch)
tree331d3f787770ed70a66e9464af904a499cb6ffef
parent246486c1857440c8c66cef10e8c52a01c42fe392 (diff)
downloadxfsprogs-dev-fd4c3ba5ec7e7f10db7b87fd5292483886dad213.tar.gz
xfs: fix number of records handling in xfs_iext_split_leaf
Source kernel commit: 43d193aa0212691254d574b8d207609ef22018b8 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> Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
-rw-r--r--libxfs/xfs_iext_tree.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/libxfs/xfs_iext_tree.c b/libxfs/xfs_iext_tree.c
index 395cbfe1d6..7f99d76ceb 100644
--- a/libxfs/xfs_iext_tree.c
+++ b/libxfs/xfs_iext_tree.c
@@ -555,16 +555,13 @@ xfs_iext_split_leaf(
int i;
/* 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->pos = 0;
*nr_entries = 0;
goto done;
}
- if (nr_keep & 1)
- nr_keep++;
-
for (i = 0; i < nr_move; i++) {
new->recs[i] = leaf->recs[nr_keep + i];
xfs_iext_rec_clear(&leaf->recs[nr_keep + i]);