This looks pretty sensible, and pretty simple. Why the RFC? This looks good to me modulo a few tiny nitpicks below: > diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c > index 1414ab79eacf..75b44b82ad1f 100644 > --- a/fs/xfs/xfs_iops.c > +++ b/fs/xfs/xfs_iops.c > @@ -126,6 +126,7 @@ xfs_cleanup_inode( > xfs_remove(XFS_I(dir), &teardown, XFS_I(inode)); > } > > + > STATIC int > xfs_generic_create( > struct inode *dir, Nit: this adds a spuurious empty line. > @@ -161,7 +162,14 @@ xfs_generic_create( > goto out_free_acl; > > if (!tmpfile) { > - error = xfs_create(XFS_I(dir), &name, mode, rdev, &ip); > + bool need_xattr = false; > + > + if ((IS_ENABLED(CONFIG_SECURITY) && dir->i_sb->s_security) || > + default_acl || acl) > + need_xattr = true; > + > + error = xfs_create(XFS_I(dir), &name, mode, rdev, > + need_xattr, &ip); It might be wort to factor the condition into a little helper. Also I think we also have security labels for O_TMPFILE inodes, so it might be worth plugging into that path as well.