• Darrick J. Wong's avatar
    xfs: don't expose misaligned extszinherit hints to userspace · 5aa5b278
    Darrick J. Wong authored
    Commit 603f000b changed xfs_ioctl_setattr_check_extsize to reject an
    attempt to set an EXTSZINHERIT extent size hint on a directory with
    RTINHERIT set if the hint isn't a multiple of the realtime extent size.
    However, I have recently discovered that it is possible to change the
    realtime extent size when adding a rt device to a filesystem, which
    means that the existence of directories with misaligned inherited hints
    is not an accident.
    
    As a result, it's possible that someone could have set a valid hint and
    added an rt volume with a different rt extent size, which invalidates
    the ondisk hints.  After such a sequence, FSGETXATTR will report a
    misaligned hint, which FSSETXATTR will trip over, causing confusion if
    the user was doing the usual GET/SET sequence to change some other
    attribute.  Change xfs_fill_fsxattr to omit the hint if it isn't aligned
    properly.
    
    Fixes: 603f000b ("xfs: validate extsz hints against rt extent size when rtinherit is set")
    Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    5aa5b278
xfs_ioctl.c 50.6 KB