FS_IOC_GETFLAGS2const
Ioctl() operations for inode flags
Part of FS_IOC_SETFLAGS(2const).
Usage
#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);
Overview
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_APPENDflag. If applied to a directory, forbids removing files from the directory (viaunlink(),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_DIRSYNCoption, 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_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_NOATIMEflag, but on a per-file basis.
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_SYNCflag). For directories, this has the same effect as theFS_DIRSYNC_FLflag.
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.
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.
Releases
2 releases since Debian 13 (Trixie); the text changed 1 time.