]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs: fix number of records handling in xfs_iext_split_leaf
authorChristoph Hellwig <hch@lst.de>
Fri, 17 Nov 2017 04:11:35 +0000 (22:11 -0600)
committerEric Sandeen <sandeen@redhat.com>
Fri, 17 Nov 2017 04:11:35 +0000 (22:11 -0600)
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>
libxfs/xfs_iext_tree.c

index 395cbfe1d6c33d9b3bb459051557f0a5c3f1bfb9..7f99d76ceb7661dda72a0213db00cd23c6cd5c06 100644 (file)
@@ -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]);