Re: [PATCH 3/3] xstat: Implement a requestable extra result to procure some inode flags [ver #4]
From: Michael Kerrisk <hidden>
Date: 2010-07-04 04:29:46
Also in:
linux-cifs, linux-ext4, linux-fsdevel, lkml
[CC+=linux-api] On Fri, Jul 2, 2010 at 7:45 PM, Andreas Dilger [off-list ref] wrote:
On 2010-07-01, at 17:57, David Howells wrote:quoted
[This is, for the moment, to be considered an example. Do we actually want to export these flags? Should they be a full member of struct xstat?]I would say this should be a full-fledged member of struct xstat. I think they are fairly standard (available on many filesystems today), and requiring an ioctl to access them is unpleasant.quoted
(1) User settable flags (to be consistent with the BSD st_flags field): UF_NODUMP Do not dump this file. UF_IMMUTABLE This file is immutable. UF_APPEND This file is append-only. UF_OPAQUE This directory is opaque (unionfs). UF_NOUNLINK This file can't be removed or renamed. UF_COMPRESSED This file is compressed. UF_HIDDEN This file shouldn't be displayed in a GUI. The UF_SETTABLE constant is the union of the above flags. (2) Superuser settable flags (to be consistent with the BSD st_flags field): SF_ARCHIVED This file has been archived. SF_IMMUTABLE This file is immutable. SF_APPEND This file is append-only. SF_NOUNLINK This file can't be removed or renamed. SF_HIDDEN This file is a snapshot inode. The SF_SETTABLE constant is the union of the above flags. (3) Linux-specific flags: XSTAT_LF_MAGIC_FILE Magic file, such as found in procfs and sysfs. XSTAT_LF_SYNC File is written synchronously. XSTAT_LF_NOATIME Atime is not updated on this file. XSTAT_LF_JOURNALLED_DATA Data modifications to this file are journalled. XSTAT_LF_ENCRYPTED This file is encrypted. XSTAT_LF_SYSTEM This file is a system file (FAT/NTFS/CIFS). XSTAT_LF_TEMPORARY This file is a temporary file (NTFS/CIFS). XSTAT_LF_OFFLINE file is currently unavailable (CIFS).Yuck on the names. Why not stick with the "UF_" and "SF_" prefixes? Since we don't need to keep _binary_ compatibility with these flag values (only name portability) we can use the same flag values as the FS_*_FL definitions in fs.h. That is what all of the existing filesystems already use (ext2/3/4, ocfs, btrfs, reiserfs, xfs, jfs).
Agree on the naming. Andreas expresses what I intended when I proposed the idea. Cheers, Michael -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ Author of "The Linux Programming Interface", http://blog.man7.org/