]> git.baikalelectronics.ru Git - kernel.git/commit
xfs: trim the mapp array accordingly in xfs_da_grow_inode_int
authorShida Zhang <zhangshida@kylinos.cn>
Tue, 4 Oct 2022 05:39:42 +0000 (16:39 +1100)
committerDave Chinner <david@fromorbit.com>
Tue, 4 Oct 2022 05:39:42 +0000 (16:39 +1100)
commitbb3026dda92f3ccd4df672d5b02fb2843e83e953
treee97f2b341f200ae8ef29babfa377290aa91a0e3b
parent302d6b0101c26d40b6c009f5baead21b86dae032
xfs: trim the mapp array accordingly in xfs_da_grow_inode_int

Take a look at the for-loop in xfs_da_grow_inode_int:
======
for(){
        nmap = min(XFS_BMAP_MAX_NMAP, count);
        ...
        error = xfs_bmapi_write(...,&mapp[mapi], &nmap);//(..., $1, $2)
        ...
        mapi += nmap;
}
=====
where $1 stands for the start address of the array,
while $2 is used to indicate the size of the array.

The array $1 will advance by $nmap in each iteration after
the allocation of extents.
But the size $2 still remains unchanged, which is determined by
min(XFS_BMAP_MAX_NMAP, count).

It seems that it has forgotten to trim the mapp array after each
iteration, so change it.

Signed-off-by: Shida Zhang <zhangshida@kylinos.cn>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Dave Chinner <david@fromorbit.com>
fs/xfs/libxfs/xfs_da_btree.c