]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
xfs: fix number of records handling in xfs_iext_split_leaf
authorChristoph Hellwig <hch@lst.de>
Thu, 9 Nov 2017 17:11:41 +0000 (09:11 -0800)
committerDarrick J. Wong <darrick.wong@oracle.com>
Thu, 9 Nov 2017 22:08:53 +0000 (14:08 -0800)
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>
fs/xfs/libxfs/xfs_iext_tree.c

index 00d660dcb05e0d53e6480355305b8df1db511086..85d7f708eafc4da62d9a1006c00e905cbfeac755 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]);