OSDN Git Service

fs: define inode flags using bit numbers
authorEric Biggers <ebiggers@google.com>
Mon, 13 Jul 2020 03:09:52 +0000 (20:09 -0700)
committerAl Viro <viro@zeniv.linux.org.uk>
Mon, 27 Jul 2020 18:39:53 +0000 (14:39 -0400)
Define the VFS inode flags using bit numbers instead of hardcoding
powers of 2, which has become unwieldy now that we're up to 65536.

No change in the actual values.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
include/linux/fs.h

index 6c4ab4d..9bf7a32 100644 (file)
@@ -1982,27 +1982,27 @@ struct super_operations {
 /*
  * Inode flags - they have no relation to superblock flags now
  */
-#define S_SYNC         1       /* Writes are synced at once */
-#define S_NOATIME      2       /* Do not update access times */
-#define S_APPEND       4       /* Append-only file */
-#define S_IMMUTABLE    8       /* Immutable file */
-#define S_DEAD         16      /* removed, but still open directory */
-#define S_NOQUOTA      32      /* Inode is not counted to quota */
-#define S_DIRSYNC      64      /* Directory modifications are synchronous */
-#define S_NOCMTIME     128     /* Do not update file c/mtime */
-#define S_SWAPFILE     256     /* Do not truncate: swapon got its bmaps */
-#define S_PRIVATE      512     /* Inode is fs-internal */
-#define S_IMA          1024    /* Inode has an associated IMA struct */
-#define S_AUTOMOUNT    2048    /* Automount/referral quasi-directory */
-#define S_NOSEC                4096    /* no suid or xattr security attributes */
+#define S_SYNC         (1 << 0)  /* Writes are synced at once */
+#define S_NOATIME      (1 << 1)  /* Do not update access times */
+#define S_APPEND       (1 << 2)  /* Append-only file */
+#define S_IMMUTABLE    (1 << 3)  /* Immutable file */
+#define S_DEAD         (1 << 4)  /* removed, but still open directory */
+#define S_NOQUOTA      (1 << 5)  /* Inode is not counted to quota */
+#define S_DIRSYNC      (1 << 6)  /* Directory modifications are synchronous */
+#define S_NOCMTIME     (1 << 7)  /* Do not update file c/mtime */
+#define S_SWAPFILE     (1 << 8)  /* Do not truncate: swapon got its bmaps */
+#define S_PRIVATE      (1 << 9)  /* Inode is fs-internal */
+#define S_IMA          (1 << 10) /* Inode has an associated IMA struct */
+#define S_AUTOMOUNT    (1 << 11) /* Automount/referral quasi-directory */
+#define S_NOSEC                (1 << 12) /* no suid or xattr security attributes */
 #ifdef CONFIG_FS_DAX
-#define S_DAX          8192    /* Direct Access, avoiding the page cache */
+#define S_DAX          (1 << 13) /* Direct Access, avoiding the page cache */
 #else
-#define S_DAX          0       /* Make all the DAX code disappear */
+#define S_DAX          0         /* Make all the DAX code disappear */
 #endif
-#define S_ENCRYPTED    16384   /* Encrypted file (using fs/crypto/) */
-#define S_CASEFOLD     32768   /* Casefolded file */
-#define S_VERITY       65536   /* Verity file (using fs/verity/) */
+#define S_ENCRYPTED    (1 << 14) /* Encrypted file (using fs/crypto/) */
+#define S_CASEFOLD     (1 << 15) /* Casefolded file */
+#define S_VERITY       (1 << 16) /* Verity file (using fs/verity/) */
 
 /*
  * Note that nosuid etc flags are inode-specific: setting some file-system