Thread (1 message) 1 message, 1 author, 2010-07-04

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/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help