FS_IOC_SETFLAGS(2const) — Linux manual page


FS_IOC_SETFLAGS(2const)                          FS_IOC_SETFLAGS(2const)

NAME         top

       FS_IOC_GETFLAGS, FS_IOC_SETFLAGS - ioctl() operations for inode

SYNOPSIS         top

       #include <linux/fs.h>  /* Definition of FS_* constants */
       #include <sys/ioctl.h>

       int ioctl(int fd, FS_IOC_GETFLAGS, int *attr);
       int ioctl(int fd, FS_IOC_SETFLAGS, const int *attr);

DESCRIPTION         top

       Various Linux filesystems support the notion of inode flags—
       attributes that modify the semantics of files and directories.
       These flags can be retrieved and modified using two ioctl(2)

           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

       FS_APPEND_FL 'a'
              The file can be opened only with the O_APPEND flag.  If
              applied to a directory, forbids removing files from the
              directory (via unlink(), rename(), and the like).  (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 restriction
              applies even to the superuser.)  Only a privileged process
              (CAP_LINUX_IMMUTABLE) can set or clear this attribute.

              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

       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

       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 directories, 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 directories 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 mechanisms outside the

       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

STANDARDS         top


NOTES         top

       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.

SEE ALSO         top

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

COLOPHON         top

       This page is part of the man-pages (Linux kernel and C library
       user-space interface documentation) project.  Information about
       the project can be found at 
       ⟨https://www.kernel.org/doc/man-pages/⟩.  If you have a bug report
       for this manual page, see
       This page was obtained from the tarball man-pages-6.9.1.tar.gz
       fetched from
       ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on
       2024-06-26.  If you discover any rendering problems in this HTML
       version of the page, or you believe there is a better or more up-
       to-date source for the page, or you have corrections or
       improvements to the information in this COLOPHON (which is not
       part of the original manual page), send a mail to

Linux man-pages 6.9.1          2024-06-13        FS_IOC_SETFLAGS(2const)

Pages that refer to this page: access(2)chmod(2)chown(2)ioctl_fs(2)link(2)mount(2)setxattr(2)unlink(2)capabilities(7)xattr(7)