šŸ’¾ Archived View for gmi.noulin.net ā€ŗ man ā€ŗ man2 ā€ŗ ioctl_iflags.2.gmi captured on 2024-08-31 at 13:38:21. Gemini links have been rewritten to link to archived content

View Raw

More Information

ā¬…ļø Previous capture (2022-06-12)

-=-=-=-=-=-=-

IOCTL_IFLAGS(2)                                                         Linux Programmer's Manual                                                        IOCTL_IFLAGS(2)

NAME
       ioctl_iflags - ioctl() operations for inode flags

DESCRIPTION
       Various Linux filesystems support the notion of inode flagsā€”attributes that modify the semantics of files and directories.  These flags can be retrieved and modā€
       ified using two ioctl(2) operations:

           int attr;
           fd = open("pathname", ...);

           ioctl(fd, FS_IOC_GETFLAGS, &attr);  /* Place current flags
                                                  in 'attr' */
           attr |= FS_NOATIME_FL;              /* Tweak returned bit mask */
           ioctl(fd, FS_IOC_SETFLAGS, &attr);  /* Update flags for inode
                                                  referred to by 'fd' */

       The lsattr(1) and chattr(1) shell commands provide interfaces to these two operations, allowing a user to view and modify the inode flags associated with a file.

       The following flags are supported (shown along with the corresponding letter used to indicate the flag by lsattr(1) and chattr(1)):

       FS_APPEND_FL 'a'
              The file can be opened only with the O_APPEND flag.  (This restriction applies even to the superuser.)  Only a  privileged  process  (CAP_LINUX_IMMUTABLE)
              can set or clear this attribute.

       FS_COMPR_FL 'c'
              Store  the  file  in  a  compressed  format  on  disk.   This flag is not supported by most of the mainstream filesystem implementations; one exception is
              btrfs(5).

       FS_DIRSYNC_FL 'D' (since Linux 2.6.0)
              Write directory changes synchronously to disk.  This flag provides semantics equivalent to the mount(2) MS_DIRSYNC option, but on a  per-directory  basis.
              This flag can be applied only to directories.

       FS_IMMUTABLE_FL 'i'
              The  file  is immutable: no changes are permitted to the file contents or metadata (permissions, timestamps, ownership, link count, and so on).  (This reā€
              striction applies even to the superuser.)  Only a privileged process (CAP_LINUX_IMMUTABLE) can set or clear this attribute.

       FS_JOURNAL_DATA_FL 'j'
              Enable journaling of file data on ext3(5) and ext4(5) filesystems.  On a filesystem that  is  journaling  in  ordered  or  writeback  mode,  a  privileged
              (CAP_SYS_RESOURCE) process can set this flag to enable journaling of data updates on a per-file basis.

       FS_NOATIME_FL 'A'
              Don't  update  the file last access time when the file is accessed.  This can provide I/O performance benefits for applications that do not care about the
              accuracy of this timestamp.  This flag provides functionality similar to the mount(2) MS_NOATIME flag, but on a per-file basis.

       FS_NOCOW_FL 'C' (since Linux 2.6.39)
              The file will not be subject to copy-on-write updates.  This flag has an effect only on filesystems that support copy-on-write semantics, such  as  Btrfs.
              See chattr(1) and btrfs(5).

       FS_NODUMP_FL 'd'
              Don't include this file in backups made using dump(8).

       FS_NOTAIL_FL 't'
              This flag is supported only on Reiserfs.  It disables the Reiserfs tail-packing feature, which tries to pack small files (and the final fragment of larger
              files) into the same disk block as the file metadata.

       FS_PROJINHERIT_FL 'P' (since Linux 4.5)
              Inherit the quota project ID.  Files and subdirectories will inherit the project ID of the directory.  This flag can be applied only to directories.

       FS_SECRM_FL 's'
              Mark the file for secure deletion.  This feature is not implemented by any filesystem, since the task of securely erasing a file from a  recording  medium
              is surprisingly difficult.

       FS_SYNC_FL 'S'
              Make  file  updates  synchronous.  For files, this makes all writes synchronous (as though all opens of the file were with the O_SYNC flag).  For directoā€
              ries, this has the same effect as the FS_DIRSYNC_FL flag.

       FS_TOPDIR_FL 'T'
              Mark a directory for special treatment under the Orlov block-allocation strategy.  See chattr(1) for details.  This flag can be applied only  to  directoā€
              ries and has an effect only for ext2, ext3, and ext4.

       FS_UNRM_FL 'u'
              Allow the file to be undeleted if it is deleted.  This feature is not implemented by any filesystem, since it is possible to implement file-recovery mechā€
              anisms outside the kernel.

       In most cases, when any of the above flags is set on a directory, the flag is inherited by files and subdirectories created inside  that  directory.   Exceptions
       include FS_TOPDIR_FL, which is not inheritable, and FS_DIRSYNC_FL, which is inherited only by subdirectories.

CONFORMING TO
       Inode flags are a nonstandard Linux extension.

NOTES
       In  order  to  change the inode flags of a file using the FS_IOC_SETFLAGS operation, the effective user ID of the caller must match the owner of the file, or the
       caller must have the CAP_FOWNER capability.

       The type of the argument given to the FS_IOC_GETFLAGS and FS_IOC_SETFLAGS operations is int *, notwithstanding the implication in  the  kernel  source  file  inā€
       clude/uapi/linux/fs.h that the argument is long *.

SEE ALSO
       chattr(1), lsattr(1), mount(2), btrfs(5), ext4(5), xfs(5), xattr(7), mount(8)

Linux                                                                          2019-11-19                                                                IOCTL_IFLAGS(2)