• Darrick J. Wong's avatar
    xfs: check for sparse inode clusters that cross new EOAG when shrinking · da062d16
    Darrick J. Wong authored
    While running xfs/168, I noticed occasional write verifier shutdowns
    involving inodes at the very end of the filesystem.  Existing inode
    btree validation code checks that all inode clusters are fully contained
    within the filesystem.
    
    However, due to inadequate checking in the fs shrink code, it's possible
    that there could be a sparse inode cluster at the end of the filesystem
    where the upper inodes of the cluster are marked as holes and the
    corresponding blocks are free.  In this case, the last blocks in the AG
    are listed in the bnobt.  This enables the shrink to proceed but results
    in a filesystem that trips the inode verifiers.  Fix this by disallowing
    the shrink.
    Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
    Reviewed-by: default avatarGao Xiang <hsiangkao@linux.alibaba.com>
    da062d16
xfs_ag.c 24.9 KB