Message ID | 20200713030952.192348-1-ebiggers@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | fs: define inode flags using bit numbers | expand |
On Sun, Jul 12, 2020 at 08:09:52PM -0700, Eric Biggers wrote: > 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. If you're going to change these, why not use the BIT() macro?
On Mon, Jul 13, 2020 at 12:59:47PM +0100, Matthew Wilcox wrote: > On Sun, Jul 12, 2020 at 08:09:52PM -0700, Eric Biggers wrote: > > 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. > > If you're going to change these, why not use the BIT() macro? > Either way would be fine with me, but I've seen people complain about BIT() before and say they prefer just (1 << n). - Eric
On Mon, Jul 13, 2020 at 09:02:59AM -0700, Eric Biggers wrote: > On Mon, Jul 13, 2020 at 12:59:47PM +0100, Matthew Wilcox wrote: > > On Sun, Jul 12, 2020 at 08:09:52PM -0700, Eric Biggers wrote: > > > 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. > > > > If you're going to change these, why not use the BIT() macro? > > > > Either way would be fine with me, but I've seen people complain about BIT() > before and say they prefer just (1 << n). Yup, BIT() is just another layer of largely useless macro obfuscation that forces readers to do yet another lookup to find out what it means. Please don't use it. Cheers, Dave.
On Sun, Jul 12, 2020 at 08:09:52PM -0700, Eric Biggers wrote: > From: Eric Biggers <ebiggers@google.com> > > 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> Al, any interest in taking this patch? - Eric
On Mon, Jul 27, 2020 at 09:48:09AM -0700, Eric Biggers wrote: > On Sun, Jul 12, 2020 at 08:09:52PM -0700, Eric Biggers wrote: > > From: Eric Biggers <ebiggers@google.com> > > > > 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> > > Al, any interest in taking this patch? *shrug* I don't see much point in that, but... might as well. Applied.
diff --git a/include/linux/fs.h b/include/linux/fs.h index f5abba86107d..973a3f9a3df5 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -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