]> www.infradead.org Git - users/hch/dma-mapping.git/commit
xfs: allow unlinked symlinks and dirs with zero size
authorDarrick J. Wong <djwong@kernel.org>
Wed, 19 Jun 2024 17:32:45 +0000 (10:32 -0700)
committerChandan Babu R <chandanbabu@kernel.org>
Wed, 26 Jun 2024 08:59:25 +0000 (14:29 +0530)
commit1ec9307fc066dd8a140d5430f8a7576aa9d78cd3
treef26fae992d13ff97d44644f32070051817e47cdc
parent288e1f693f04e66be99f27e7cbe4a45936a66745
xfs: allow unlinked symlinks and dirs with zero size

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 3c6f46eacd876 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: 3c6f46eacd876 ("xfs: sanity check directory inode di_size")
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Chandan Babu R <chandanbabu@kernel.org>
fs/xfs/libxfs/xfs_inode_buf.c