plucky (2) FS_IOC_GETFLAGS.2const.gz

Provided by: manpages-dev_6.9.1-1_all bug

NAME

       FS_IOC_GETFLAGS, FS_IOC_SETFLAGS - ioctl() operations for inode flags

SYNOPSIS

       #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

       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) 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.  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.

       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  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 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.

STANDARDS

       Linux.

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.

SEE ALSO

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