Manual of file_attr(2type)
| file_attr(2type) | file_attr(2type) |
NAME
file_attr - filesystem file attributes
SYNOPSIS
#include <linux/fs.h>
struct file_attr {
u64 fa_xflags; // Extended flags
u32 fa_extsize; // Extent size hint
u32 fa_nextents; // Number of extents (read-only)
u32 fa_projid; // Project identifier
u32 fa_cowextsize; // CoW extent size hint
};
DESCRIPTION
Describes filesystem file attributes for use with the file_getattr(2) and file_setattr(2) system calls.
The fields are as follows:
- .fa_xflags
- This field contains file attribute flags. It is a bit mask consisting of zero or more of the FS_XFLAG_* flags. See Flags below for a list of flags.
- .fa_extsize
- Extent size allocator hint in bytes. This value suggests a preferred extent size for new allocations to this file.
- .fa_nextents
- Number of data extents in the file (read-only). This field is filled in by file_getattr(2) and is ignored by file_setattr(2).
- .fa_projid
- Project identifier. Used by quota systems quotactl(2) to group related files.
- .fa_cowextsize
- Copy-on-Write (CoW) extent size hint in bytes. This value suggests a preferred extent size for CoW operations.
Flags
- FS_XFLAG_REALTIME
- Data is stored in a realtime volume.
- FS_XFLAG_IMMUTABLE
- File cannot be modified.
- FS_XFLAG_APPEND
- All writes must append to the end of the file.
- FS_XFLAG_SYNC
- All writes are synchronous.
- FS_XFLAG_NOATIME
- Do not update file access time on reads.
- FS_XFLAG_NODUMP
- Do not include file in backups.
- FS_XFLAG_DAX
- Use Direct Access (DAX) for I/O operations.
- FS_XFLAG_NODEFRAG
- Exclude this file from defragmentation operations.
- FS_XFLAG_FILESTREAM
- Use filestream allocator for this file.
- FS_XFLAG_EXTSIZE
- Use the extent size hint from the fa_extsize field.
- FS_XFLAG_COWEXTSIZE
- Use the CoW extent size hint from the fa_cowextsize field.
Directory-only flags:
- FS_XFLAG_RTINHERIT
- New files created in this directory inherit the realtime flag.
- FS_XFLAG_NOSYMLINKS
- Disallow creation of symbolic links in this directory.
- FS_XFLAG_EXTSZINHERIT
- New files created in this directory inherit the extent size hint.
- FS_XFLAG_PROJINHERIT
- New files created in this directory inherit the project identifier.
Read-only flags:
- FS_XFLAG_PREALLOC
- File has preallocated extents.
- FS_XFLAG_HASATTR
- File has extended attributes.
- FS_XFLAG_VERITY
- File has fs-verity enabled.
- FS_XFLAG_CASEFOLD
- The filesystem performs case-insensitive lookups (file and directory name comparisons ignore case).
- FS_XFLAG_CASENONPRESERVING
- The filesystem does not preserve the case of file and directory names.
Not all filesystems support all flags. Setting unsupported flags may result in an error.
HISTORY
Linux v6.17
This structure is introduced.
Linux v7.2
The FS_XFLAG_CASEFOLD and FS_XFLAG_CASENONPRESERVING are introduced to enable upper layers, such as NFSD, to retrieve case sensitivity information.
SEE ALSO
| 2026-10-11 | Linux man-pages (unreleased) |