IOCTL-XFS-FSGETXATTR - Online Linux Manual PageSection : 2
Updated : 2019-06-17
Source : XFS

NAMEioctl_xfs_fsgetxattr − query information for an open file

SYNOPSIS
#include <linux/fs.h> int ioctl(int fd, XFS_IOC_FSGETXATTR, struct fsxattr *arg);
int ioctl(int fd, XFS_IOC_FSGETXATTRA, struct fsxattr *arg);
int ioctl(int fd, XFS_IOC_FSSETXATTR, struct fsxattr *arg);

DESCRIPTIONQuery or set additional attributes associated with files in various file systems. The attributes are conveyed in a structure of the form: struct fsxattr { __u32 fsx_xflags; __u32 fsx_extsize; __u32 fsx_nextents; __u32 fsx_projid; __u32 fsx_cowextsize; unsigned char fsx_pad[8]; };fsx_xflags are extended flags that apply to this file. Refer to the section XFS INODE FLAGS below for more information. fsx_extsize is the preferred extent allocation size for data blocks mapped to this file, in units of filesystem blocks. If this value is zero, the filesystem will choose a default option, which is currently zero. If XFS_IOC_FSSETXATTR is called with XFS_XFLAG_EXTSIZE set in fsx_xflags and this field set to zero, the XFLAG will also be cleared. fsx_nextents is the number of data extents in this file. If XFS_IOC_FSGETXATTRA was used, then this is the number of extended attribute extents in the file. fsx_projid is the project ID of this file. fsx_cowextsize is the preferred extent allocation size for copy on write operations targeting this file, in units of filesystem blocks. If this field is zero, the filesystem will choose a default option, which is currently 128 filesystem blocks. If XFS_IOC_FSSETXATTR is called with XFS_XFLAG_COWEXTSIZE set in fsx_xflags and this field set to zero, the XFLAG will also be cleared. fsx_pad must be zeroed.

XFS INODE FLAGSThis field can be a combination of the following: XFS_XFLAG_REALTIME  The file is a realtime file. This bit can only be changed on a file when it has no allocated extents. XFS_XFLAG_PREALLOC  The file has preallocated space. XFS_XFLAG_IMMUTABLE  The file is immutable - it cannot be modified, deleted or renamed, no link can be created to this file and no data can be written to the file. Only the superuser or a process possessing the CAP_LINUX_IMMUTABLE capability can set or clear this flag. If this flag is set before a XFS_IOC_FSSETXATTR call and would not be cleared by the call, then no other attributes can be changed and EPERM will be returned. XFS_XFLAG_APPEND  The file is append-only - it can only be opened in append mode for writing. Only the superuser or a process possessing the CAP_LINUX_IMMUTABLE capability can set or clear this flag. XFS_XFLAG_SYNC  All writes to the file are synchronous. If set on a directory and the /proc/sys/fs/xfs/inherit_sync tunable is set to 1, new files and subdirectories created in the directory will also have the flag set. XFS_XFLAG_NOATIME  When the file is accessed, its atime record is not modified. If set on a directory and the /proc/sys/fs/xfs/inherit_noatime tunable is set to 1, new files and subdirectories created in the directory will also have the flag set. XFS_XFLAG_NODUMP  The file should be skipped by backup utilities. If set on a directory and the /proc/sys/fs/xfs/inherit_nodump tunable is set to 1, new files and subdirectories created in the directory will also have the flag set. XFS_XFLAG_RTINHERIT  Realtime inheritance bit - new files created in the directory will be automatically created as realtime files. If set on a directory, new subdirectories created in the directory will also have the inheritance flag set. XFS_XFLAG_PROJINHERIT  Project inheritance bit - new files and directories created in this directory will inherit the project ID of this directory. If set on a directory, new subdirectories created in the directory will also have the inheritance flag set. XFS_XFLAG_NOSYMLINKS  Disallows creation of symbolic links in the directory. This flag can only be set on a directory. If set on a directory and the /proc/sys/fs/xfs/inherit_nosymlinks tunable is set to 1, new files and subdirectories created in the directory will also have the flag set. XFS_XFLAG_EXTSIZE  Extent size bit - if a basic extent size value is set on the file then the allocator will allocate in multiples of the set size for this file (see fsx_extsize below). The extent size can only be changed on a file when it has no allocated extents. XFS_XFLAG_EXTSZINHERIT  Extent size inheritance bit - new files and directories created in the directory will inherit the extent size value (see fsx_extsize below) of the parent directory. New subdirectories created in the directory will inherit the extent size inheritance bit. XFS_XFLAG_NODEFRAG  No defragment file bit - the file should be skipped during a defragmentation operation. If set on a directory and the /proc/sys/fs/xfs/inherit_nodefrag tunable is set to 1, new files and subdirectories created in the directory will also have the flag set. XFS_XFLAG_FILESTREAM  Filestream allocator bit - allows a directory to reserve an allocation group for exclusive use by files created within that directory. Files being written in other directories will not use the same allocation group and so files within different directories will not interleave extents on disk. The reservation is only active while files are being created and written into the directory. If set on a directory, new files and subdirectories created in the directory will also have the flag set. XFS_XFLAG_DAX  If the filesystem lives on directly accessible persistent memory, reads and writes to this file will go straight to the persistent memory, bypassing the page cache. If set on a directory, new files and subdirectories created in the directory will also have the flag set. This flag cannot be set on filesystems which have the reflink feature enabled. XFS_XFLAG_COWEXTSIZE  Copy on Write Extent size bit - if a CoW extent size value is set on the file, the allocator will allocate extents for staging a copy on write operation in multiples of the set size for this file (see fsx_cowextsize below). If set on a directory, new files and subdirectories created in the directory will have both the flag and the CoW extent size value set. XFS_XFLAG_HASATTR  The file has extended attributes associated with it.

RETURN VALUEOn error, −1 is returned, and errno is set to indicate the error.

ERRORSError codes can be one of, but are not limited to, the following: EACCESS  Caller does not have sufficient access to change the attributes. EFAULT  The kernel was not able to copy into the userspace buffer. EFSBADCRC  Metadata checksum validation failed while performing the query. EFSCORRUPTED  Metadata corruption was encountered while performing the query. EINVAL  One of the arguments was not valid. EIO  An I/O error was encountered while performing the query. ENOMEM  There was insufficient memory to perform the query. EPERM  Caller did not have permission to change the attributes.

CONFORMING TOThis API is implemented by the ext4, xfs, btrfs, and f2fs filesystems on the Linux kernel. Not all fields may be understood by filesystems other than xfs.

SEE ALSOioctl(2), ioctl_iflags(2)
0
Johanes Gumabo
Data Size   :   17,164 byte
man-ioctl_xfs_fsgetxattra.2Build   :   2024-12-05, 20:55   :  
Visitor Screen   :   x
Visitor Counter ( page / site )   :   2 / 180,457
Visitor ID   :     :  
Visitor IP   :   18.119.28.173   :  
Visitor Provider   :   AMAZON-02   :  
Provider Position ( lat x lon )   :   39.962500 x -83.006100   :   x
Provider Accuracy Radius ( km )   :   1000   :  
Provider City   :   Columbus   :  
Provider Province   :   Ohio ,   :   ,
Provider Country   :   United States   :  
Provider Continent   :   North America   :  
Visitor Recorder   :   Version   :  
Visitor Recorder   :   Library   :  
Online Linux Manual Page   :   Version   :   Online Linux Manual Page - Fedora.40 - march=x86-64 - mtune=generic - 24.12.05
Online Linux Manual Page   :   Library   :   lib_c - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Online Linux Manual Page   :   Library   :   lib_m - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Data Base   :   Version   :   Online Linux Manual Page Database - 24.04.13 - march=x86-64 - mtune=generic - fedora-38
Data Base   :   Library   :   lib_c - 23.02.07 - march=x86-64 - mtune=generic - fedora.36

Very long time ago, I have the best tutor, Wenzel Svojanovsky . If someone knows the email address of Wenzel Svojanovsky , please send an email to johanes_gumabo@yahoo.co.id .
If error, please print screen and send to johanes_gumabo@yahoo.co.id
Under development. Support me via PayPal.