Re: [PATCH 6/8] common/filter: fix _filter_file_attributes to handle xfs file flags

Darrick J. Wong
2025-10-20T16:37:14Z

On Mon, Oct 20, 2025 at 12:01:21AM -0700, Christoph Hellwig wrote:
> On Fri, Oct 17, 2025 at 09:22:18AM -0700, Darrick J. Wong wrote:
> > > What XFS flags end up in lsattr?
> >
> > Assuming you're asking which XFS flags are reported by ext4 lsattr...
> >
> > append, noatime, nodump, immutable, projinherit, fsdax
> >
> > Unless you meant src/file_attr.c? In which case theyr'e
>
> I'm actually not sure. I was just surprised about the flags showing
> up.
>
> >
> > > Is this coordinated with the official
> > > registry in ext4?
> >
> > Only informally by Ted and I talking on Thursdays.
> >
> > The problem here is that _filter_file_attributes ... probably ought to
> > say which domain (ext4 lsattr or xfs_io lsattr) it's actually filtering.
>
> Oooh. That explains my confusion.
>
> > Right now the only users of this helper are using it to filter
> > src/file_attr.c output (aka xfs_io lsattr) so I think I should change
> > the patch to document that.
>
> Yes, please. And we really need to figure out central authoritisied
> to document the lsattr and fsxattr domain flags.

[add tytso and linux-ext4]

I think we should standardize on the VFS (aka file_getattr) flag values,
which means the xfs version more or less wins.

The only problem there of course is that file_getattr doesn't know about
the ext-specific flags, which are:

{ EXT2_SECRM_FL, "s", "Secure_Deletion" },
{ EXT2_UNRM_FL, "u" , "Undelete" },
{ EXT2_DIRSYNC_FL, "D", "Synchronous_Directory_Updates" },
{ EXT2_COMPR_FL, "c", "Compression_Requested" },
{ EXT4_ENCRYPT_FL, "E", "Encrypted" },
{ EXT3_JOURNAL_DATA_FL, "j", "Journaled_Data" },
{ EXT2_INDEX_FL, "I", "Indexed_directory" },
{ EXT2_NOTAIL_FL, "t", "No_Tailmerging" },
{ EXT2_TOPDIR_FL, "T", "Top_of_Directory_Hierarchies" },
{ EXT4_EXTENTS_FL, "e", "Extents" },
{ FS_NOCOW_FL, "C", "No_COW" },
{ EXT4_CASEFOLD_FL, "F", "Casefold" },
{ EXT4_INLINE_DATA_FL, "N", "Inline_Data" },
{ EXT4_VERITY_FL, "V", "Verity" },
{ EXT2_NOCOMPR_FL, "m", "Dont_Compress" },

Not sure what we want to do about that, since some of those flags like
the ones related to deletion, compression, and tailmerging aren't
implemented.

Other things like extents/topdir seem too ext4-specific to put in a vfs
interface....?

--D