set on the file, a
.B fsx_extsize
of zero indicates that the defaults for that filesystem will be used.
+A
+.B fsx_cowextsize
+value returned indicates that a preferred copy on write extent size was
+previously set on the file, whereas a
+.B fsx_cowextsize
+of zero indicates that the defaults for that filesystem will be used.
+The current default for
+.B fsx_cowextsize
+is 128 blocks.
Currently the meaningful bits for the
.B fsx_xflags
field are:
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.
+A file cannot be reflinked and have the
+.BR XFS_XFLAG_DAX
+set at the same time.
+That is to say that DAX files cannot share blocks.
+.TP
+.SM "Bit 16 (0x10000) \- 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
+.B XFS_IOC_FSSETXATTR
+below).
+If the CoW extent size is set on a directory, then new file and directories
+created in the directory will inherit the parent's CoW extent size value.
.TP
.SM "Bit 31 (0x80000000) \- XFS_XFLAG_HASATTR"
The file has extended attributes associated with it.
.BR "struct fsxattr" ,
but only the following fields are used in this call:
.BR fsx_xflags ,
-.B fsx_extsize
+.BR fsx_extsize ,
+.BR fsx_cowextsize ,
and
.BR fsx_projid .
The
the extent size can be set at any time (this value is only used
for regular file allocations, so should only be set on a directory
in conjunction with the XFS_XFLAG_EXTSZINHERIT flag).
+The copy on write extent size,
+.BR fsx_cowextsize ,
+can be set at any time.
.TP
.B XFS_IOC_GETBMAP