linux-xfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] xfs: honor init_xattrs in xfs_init_new_inode for !attr && attr2 fs
@ 2024-06-18 23:21 Darrick J. Wong
  2024-06-19  1:06 ` Darrick J. Wong
  0 siblings, 1 reply; 8+ messages in thread
From: Darrick J. Wong @ 2024-06-18 23:21 UTC (permalink / raw)
  To: Christoph Hellwig, Chandan Babu R; +Cc: xfs

From: Darrick J. Wong <djwong@kernel.org>

xfs_init_new_inode ignores the init_xattrs parameter for filesystems
that have ATTR2 enabled but not ATTR.  As a result, the first file to be
created by the kernel will not have an attr fork created to store acls.
Storing that first acl will add ATTR to the superblock flags, so chances
are nobody has noticed this previously.

However, this is disastrous on a filesystem with parent pointers because
it requires that a new linkable file /must/ have a pre-existing attr
fork.  The preproduction version of mkfs.xfs have always set this, but
as xfs_sb.c doesn't validate that pptrs filesystems have ATTR set, we
must catch this case.

Note that the sb verifier /does/ require ATTR2 for V5 filesystems, so we
can fix both problems by amending xfs_init_new_inode to set up the attr
fork for either ATTR or ATTR2.

Fixes: 2442ee15bb1e ("xfs: eager inode attr fork init needs attr feature awareness")
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
---
 fs/xfs/xfs_inode.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
index b699fa6ee3b64..b2aab91a86d30 100644
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
@@ -870,7 +870,7 @@ xfs_init_new_inode(
 	 * this saves us from needing to run a separate transaction to set the
 	 * fork offset in the immediate future.
 	 */
-	if (init_xattrs && xfs_has_attr(mp)) {
+	if (init_xattrs && (xfs_has_attr(mp) || xfs_has_attr2(mp))) {
 		ip->i_forkoff = xfs_default_attroffset(ip) >> 3;
 		xfs_ifork_init_attr(ip, XFS_DINODE_FMT_EXTENTS, 0);
 	}

^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2024-07-12  5:28 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-18 23:21 [PATCH] xfs: honor init_xattrs in xfs_init_new_inode for !attr && attr2 fs Darrick J. Wong
2024-06-19  1:06 ` Darrick J. Wong
2024-06-19  5:25   ` Christoph Hellwig
2024-06-19 16:00     ` Darrick J. Wong
2024-07-01  1:27   ` Dave Chinner
2024-07-01 23:37     ` Darrick J. Wong
2024-07-12  0:31       ` Dave Chinner
2024-07-12  5:28         ` Christoph Hellwig

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).