• Darrick J. Wong's avatar
    xfs: standardize extent size hint validation · 6b69e485
    Darrick J. Wong authored
    While chasing a bug involving invalid extent size hints being propagated
    into newly created realtime files, I noticed that the xfs_ioctl_setattr
    checks for the extent size hints weren't the same as the ones now
    encoded in libxfs and used for validation in repair and mkfs.
    
    Because the checks in libxfs are more stringent than the ones in the
    ioctl, it's possible for a live system to set inode flags that
    immediately result in corruption warnings.  Specifically, it's possible
    to set an extent size hint on an rtinherit directory without checking if
    the hint is aligned to the realtime extent size, which makes no sense
    since that combination is used only to seed new realtime files.
    
    Replace the open-coded and inadequate checks with the libxfs verifier
    versions and update the code comments a bit.
    Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
    Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    6b69e485
xfs_ioctl.c 49.3 KB