fs: use bit shifts for FMODE_* flags
authorChristian Brauner <brauner@kernel.org>
Sun, 7 Apr 2024 13:16:55 +0000 (15:16 +0200)
committerChristian Brauner <brauner@kernel.org>
Sun, 7 Apr 2024 16:04:46 +0000 (18:04 +0200)
Make it easier to see what bits are still available.

Link: https://lore.kernel.org/r/20240406061604.GA538574@ZenIV
Signed-off-by: Christian Brauner <brauner@kernel.org>
include/linux/fs.h

index 53cddf0131ca4c553b4bf9db368786272dac2b17..2ba98930c4c4f8ed35dbd9e636257936ef04c4e0 100644 (file)
@@ -110,21 +110,24 @@ typedef int (dio_iodone_t)(struct kiocb *iocb, loff_t offset,
  */
 
 /* file is open for reading */
-#define FMODE_READ             ((__force fmode_t)0x1)
+#define FMODE_READ             ((__force fmode_t)(1 << 0))
 /* file is open for writing */
-#define FMODE_WRITE            ((__force fmode_t)0x2)
+#define FMODE_WRITE            ((__force fmode_t)(1 << 1))
 /* file is seekable */
-#define FMODE_LSEEK            ((__force fmode_t)0x4)
+#define FMODE_LSEEK            ((__force fmode_t)(1 << 2))
 /* file can be accessed using pread */
-#define FMODE_PREAD            ((__force fmode_t)0x8)
+#define FMODE_PREAD            ((__force fmode_t)(1 << 3))
 /* file can be accessed using pwrite */
-#define FMODE_PWRITE           ((__force fmode_t)0x10)
+#define FMODE_PWRITE           ((__force fmode_t)(1 << 4))
 /* File is opened for execution with sys_execve / sys_uselib */
-#define FMODE_EXEC             ((__force fmode_t)0x20)
+#define FMODE_EXEC             ((__force fmode_t)(1 << 5))
+
+/* FMODE_* bits 6 to 8 */
+
 /* 32bit hashes as llseek() offset (for directories) */
-#define FMODE_32BITHASH         ((__force fmode_t)0x200)
+#define FMODE_32BITHASH         ((__force fmode_t)(1 << 9))
 /* 64bit hashes as llseek() offset (for directories) */
-#define FMODE_64BITHASH         ((__force fmode_t)0x400)
+#define FMODE_64BITHASH         ((__force fmode_t)(1 << 10))
 
 /*
  * Don't update ctime and mtime.
@@ -132,51 +135,53 @@ typedef int (dio_iodone_t)(struct kiocb *iocb, loff_t offset,
  * Currently a special hack for the XFS open_by_handle ioctl, but we'll
  * hopefully graduate it to a proper O_CMTIME flag supported by open(2) soon.
  */
-#define FMODE_NOCMTIME         ((__force fmode_t)0x800)
+#define FMODE_NOCMTIME         ((__force fmode_t)(1 << 11))
 
 /* Expect random access pattern */
-#define FMODE_RANDOM           ((__force fmode_t)0x1000)
+#define FMODE_RANDOM           ((__force fmode_t)(1 << 12))
 
 /* File is huge (eg. /dev/mem): treat loff_t as unsigned */
-#define FMODE_UNSIGNED_OFFSET  ((__force fmode_t)0x2000)
+#define FMODE_UNSIGNED_OFFSET  ((__force fmode_t)(1 << 13))
 
 /* File is opened with O_PATH; almost nothing can be done with it */
-#define FMODE_PATH             ((__force fmode_t)0x4000)
+#define FMODE_PATH             ((__force fmode_t)(1 << 14))
 
 /* File needs atomic accesses to f_pos */
-#define FMODE_ATOMIC_POS       ((__force fmode_t)0x8000)
+#define FMODE_ATOMIC_POS       ((__force fmode_t)(1 << 15))
 /* Write access to underlying fs */
-#define FMODE_WRITER           ((__force fmode_t)0x10000)
+#define FMODE_WRITER           ((__force fmode_t)(1 << 16))
 /* Has read method(s) */
-#define FMODE_CAN_READ          ((__force fmode_t)0x20000)
+#define FMODE_CAN_READ          ((__force fmode_t)(1 << 17))
 /* Has write method(s) */
-#define FMODE_CAN_WRITE         ((__force fmode_t)0x40000)
+#define FMODE_CAN_WRITE         ((__force fmode_t)(1 << 18))
 
-#define FMODE_OPENED           ((__force fmode_t)0x80000)
-#define FMODE_CREATED          ((__force fmode_t)0x100000)
+#define FMODE_OPENED           ((__force fmode_t)(1 << 19))
+#define FMODE_CREATED          ((__force fmode_t)(1 << 20))
 
 /* File is stream-like */
-#define FMODE_STREAM           ((__force fmode_t)0x200000)
+#define FMODE_STREAM           ((__force fmode_t)(1 << 21))
 
 /* File supports DIRECT IO */
-#define        FMODE_CAN_ODIRECT       ((__force fmode_t)0x400000)
+#define        FMODE_CAN_ODIRECT       ((__force fmode_t)(1 << 22))
+
+#define        FMODE_NOREUSE           ((__force fmode_t)(1 << 23))
 
-#define        FMODE_NOREUSE           ((__force fmode_t)0x800000)
+/* FMODE_* bit 24 */
 
 /* File is embedded in backing_file object */
-#define FMODE_BACKING          ((__force fmode_t)0x2000000)
+#define FMODE_BACKING          ((__force fmode_t)(1 << 25))
 
 /* File was opened by fanotify and shouldn't generate fanotify events */
-#define FMODE_NONOTIFY         ((__force fmode_t)0x4000000)
+#define FMODE_NONOTIFY         ((__force fmode_t)(1 << 26))
 
 /* File is capable of returning -EAGAIN if I/O will block */
-#define FMODE_NOWAIT           ((__force fmode_t)0x8000000)
+#define FMODE_NOWAIT           ((__force fmode_t)(1 << 27))
 
 /* File represents mount that needs unmounting */
-#define FMODE_NEED_UNMOUNT     ((__force fmode_t)0x10000000)
+#define FMODE_NEED_UNMOUNT     ((__force fmode_t)(1 << 28))
 
 /* File does not contribute to nr_files count */
-#define FMODE_NOACCOUNT                ((__force fmode_t)0x20000000)
+#define FMODE_NOACCOUNT                ((__force fmode_t)(1 << 29))
 
 /*
  * Attribute flags.  These should be or-ed together to figure out what