Messages in this thread | | | Date | Tue, 6 Jul 2010 10:10:32 +1000 | From | Dave Chinner <> | Subject | Re: [PATCH] Rearrange i_flags to be consistent with FS_IOC_GETFLAGS |
| |
On Mon, Jul 05, 2010 at 04:43:19PM +0100, David Howells wrote: > Rearrange the constituent bits of i_flags to be consistent with the flag values > returned by the FS_IOC_GETFLAGS ioctl where flags with common meanings occur. > Otherwise pack the bits of i_flags as low as possible so that RISC CPUs can > use small instructions. > > This allows those filesystems that use i_flags (Ext2/3/4) to simplify their > get/set flags routines.
This seems like a nasty landmine just waiting for someone to step on. The S_* flags are VFS level flags used by all filesytsems, not just extN, and have a history of changing values and meaning as uses come and go. This code forces the VFS to use certain flag values that *match on-disk values* of ext2/3/4.
Further, it opens up the possibility that further down the track someone modifies S_* flag values (say when adding some XFS functionality) and corrupts extN filesystems all over the place. There isn't even compiler guards to catch someone modifying the S_* flags in a way that makes it incompatible with the extN on-disk definitions.
Cheers,
Dave. -- Dave Chinner david@fromorbit.com
| |