On Wed, Dec 18, 2019 at 11:20:40AM -0600, Eric Sandeen wrote: > On 12/18/19 11:09 AM, Darrick J. Wong wrote: > > From: Darrick J. Wong <darrick.wong@xxxxxxxxxx> > > > > The section of the xfs_io manpage for the 'chattr' command says to refer > > to xfsctl(3) for information on the flags. The inode flag information > > was moved to ioctl_xfs_fssetxattr(2) ages ago, and it never actually > > mapped the inode flag letters to inode flag bits, so add those to the > > xfs_io manpage. > > Hm, ok. The info is in the command's help output but I suppose it's useful > enough to have it in the (a?) manpage, too. > > OTOH this cuts & pastes quite a lot from the ioctl_xfs_fsgetxattr and I get > nervous when we do that because it /will/ get out of sync. > > I wonder if we can just say "refer to help output for flag mappings, and to > ioctl_xfs_fsgetxattr for flag descriptions?" > > Or would it suffice to just fix up the existing text: > > The mapping between each > letter and the inode flags (refer to > .BR ioctl_xfs_fssetxattr (2) > for the full list) is available via the > .B help > command. Hmm, I guess that would work too? Or how about add the raw mapping from letter to flag in the manpage: "The inode flags are as follows: o XFS_XFLAG_OSCAR t XFS_XFLAG_THE g XFS_XFLAG_GROUCH" ? :) /bikeshedding --D > > Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> > > --- > > man/man8/xfs_io.8 | 123 ++++++++++++++++++++++++++++++++++++++++++++++++++--- > > 1 file changed, 117 insertions(+), 6 deletions(-) > > > > diff --git a/man/man8/xfs_io.8 b/man/man8/xfs_io.8 > > index 2f17c64c..26523ab8 100644 > > --- a/man/man8/xfs_io.8 > > +++ b/man/man8/xfs_io.8 > > @@ -794,18 +794,129 @@ for all directory entries below the currently open file > > can be used to restrict the output to directories only). > > This is a depth first descent, it does not follow symlinks and > > it also does not cross mount points. > > + > > +The current inode flag letters are: > > + > > +.PD 0 > > +.RS > > +.TP 0.5i > > +.SM "r (XFS_XFLAG_REALTIME)" > > +The file is a realtime file. > > + > > +.TP > > +.SM "p (XFS_XFLAG_PREALLOC)" > > +The file has preallocated space. > > + > > +.TP > > +.SM "i (XFS_XFLAG_IMMUTABLE)" > > +The file is immutable - it cannot be modified, deleted or renamed, no link can > > +be created to this file and no data can be written to the file. > > +Only the superuser or a process possessing the CAP_LINUX_IMMUTABLE capability > > +can set or clear this flag. > > + > > +.TP > > +.SM "a (XFS_XFLAG_APPEND)" > > +The file is append-only - it can only be open in append mode for writing. > > +Only the superuser or a process possessing the CAP_LINUX_IMMUTABLE capability > > +can set or clear this flag. > > + > > +.TP > > +.SM "s (XFS_XFLAG_SYNC)" > > +All writes to the file are synchronous. > > + > > +.TP > > +.SM "A (XFS_XFLAG_NOATIME)" > > +When the file is accessed, its atime record is not modified. > > + > > +.TP > > +.SM "d (XFS_XFLAG_NODUMP)" > > +The file should be skipped by backup utilities. > > + > > +.TP > > +.SM "t (XFS_XFLAG_RTINHERIT)" > > +New files created in this directory will be automatically flagged as realtime. > > +New directories created in the directory will inherit the inheritance bit. > > + > > +.TP > > +.SM "P (XFS_XFLAG_PROJINHERIT)" > > +New files and directories created in the directory will inherit the parent's > > +project ID. > > +New directories also inherit the project ID and project inheritance bit. > > + > > +.TP > > +.SM "n (XFS_XFLAG_NOSYMLINKS)" > > +Can only be set on a directory and disallows creation of symbolic links in the > > +directory. > > + > > +.TP > > +.SM "e (XFS_XFLAG_EXTSIZE)" > > +Extent size hint - if a basic extent size value is set on the file then the > > +allocator will try allocate in multiples of the set size for this file. > > +This only applies to non-realtime files. > > +See > > +.BR ioctl_xfs_fsgetxattr "(2)" > > +for more information. > > + > > +.TP > > +.SM "E (XFS_XFLAG_EXTSZINHERIT)" > > +New files and directories created in the directory will inherit the parent's > > +basic extent size value (see above). > > +Can only be set on a directory. > > + > > +.TP > > +.SM "f (XFS_XFLAG_NODEFRAG)" > > +The file should be skipped during a defragmentation operation. > > +When applied to a directory, new files and directories created will > > +inherit the no\-defrag state. > > + > > +.TP > > +.SM "S (XFS_XFLAG_FILESTREAM)" > > +Filestream allocator - allows a directory to reserve an allocation group for > > +exclusive use by files created within that directory. > > +Files being written in other directories will not use the same allocation group > > +and so files within different directories will not interleave > > +extents on disk. > > +The reservation is only active while files are being created and written into > > +the directory. > > + > > +.TP > > +.SM "x (XFS_XFLAG_DAX)" > > +If the filesystem lives on directly accessible persistent memory, reads and > > +writes to this file will go straight to the persistent memory, bypassing the > > +page cache. > > +A file with this flag set cannot share blocks. > > +If set on a directory, new files and directories created will inherit the > > +persistent memory capability. > > + > > +.TP > > +.SM "C (XFS_XFLAG_COWEXTSIZE)" > > +Copy on Write Extent size hint - if a CoW extent size value is set on the file, > > +the allocator will allocate extents for staging a copy on write operation > > +in multiples of the set size for this file. > > +See > > +.BR ioctl_xfs_fsgetxattr "(2)" > > +for more information. > > +If the CoW extent size is set on a directory, then new file and directories > > +created in the directory will inherit the parent's CoW extent size value. > > + > > +.TP > > +.SM "X (XFS_XFLAG_HASATTR)" > > +The file has extended attributes associated with it. > > +This flag cannot be changed via chattr. > > +.RE > > + > > .TP > > .BR chattr " [ " \-R " | " \-D " ] [ " + / \-riasAdtPneEfSxC " ]" > > Change extended inode flags on the currently open file. The > > .B \-R > > and > > .B \-D > > -options have the same meaning as above. The mapping between each > > -letter and the inode flags (refer to > > -.BR xfsctl (3) > > -for the full list) is available via the > > -.B help > > -command. > > +options have the same meaning as above. > > + > > +See the > > +.B lsattr > > +command above for the list of inode flag letters. > > + > > .TP > > .BI "flink " path > > Link the currently open file descriptor into the filesystem namespace. > >