ext4: ensure Inode flags consistency are checked at build time
authorCarlos Maiolino <cmaiolino@redhat.com>
Mon, 10 Dec 2012 21:30:45 +0000 (16:30 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 10 Dec 2012 21:30:45 +0000 (16:30 -0500)
commit9a4c8019471386c6fb039ae9e30f5216b6b55a9e
treedf7b86c60e1f32f793d85438f67e3c9f23ec165a
parent939da1084458246d2e29dd921c2012c177000e96
ext4: ensure Inode flags consistency are checked at build time

Flags being used by atomic operations in inode flags (e.g.
ext4_test_inode_flag(), should be consistent with that actually stored
in inodes, i.e.: EXT4_XXX_FL.

It ensures that this consistency is checked at build-time, not at
run-time.

Currently, the flags consistency are being checked at run-time, but,
there is no real reason to not do a build-time check instead of a
run-time check. The code is comparing macro defined values with enum
type variables, where both are constants, so, there is no problem in
comparing constants at build-time.

enum variables are treated as constants by the C compiler, according
to the C99 specs (see www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf
sec. 6.2.5, item 16), so, there is no real problem in comparing an
enumeration type at build time

Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
fs/ext4/ext4.h
fs/ext4/super.c