• Darrick J. Wong's avatar
    xfs: allow unlinked symlinks and dirs with zero size · 1ec9307f
    Darrick J. Wong authored
    For a very very long time, inode inactivation has set the inode size to
    zero before unmapping the extents associated with the data fork.
    Unfortunately, commit 3c6f46ea changed the inode verifier to
    prohibit zero-length symlinks and directories.  If an inode happens to
    get logged in this state and the system crashes before freeing the
    inode, log recovery will also fail on the broken inode.
    
    Therefore, allow zero-size symlinks and directories as long as the link
    count is zero; nobody will be able to open these files by handle so
    there isn't any risk of data exposure.
    
    Fixes: 3c6f46ea ("xfs: sanity check directory inode di_size")
    Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarChandan Babu R <chandanbabu@kernel.org>
    1ec9307f
xfs_inode_buf.c 22.3 KB