GFS2: The war on bloat

The following patch shrinks the gfs2_args structure which is embedded in
every GFS2 superblock. It cuts down the size of the options to a single
unsigned int (the 13 bits of bitfields will be rounded up to that size
by the compiler) from the current 11 unsigned ints. So on x86 thats 44
bytes shrinking to 4 bytes, in each and every GFS2 superblock.

Signed-off-by: Steven Whitehouse <swhitho@redhat.com>
This commit is contained in:
Steven Whitehouse 2008-09-18 13:49:32 +01:00
parent acd2c8aa02
commit 37ec89e83c
1 changed files with 15 additions and 15 deletions

View File

@ -386,21 +386,21 @@ struct gfs2_statfs_change_host {
#define GFS2_DATA_ORDERED 2 #define GFS2_DATA_ORDERED 2
struct gfs2_args { struct gfs2_args {
char ar_lockproto[GFS2_LOCKNAME_LEN]; /* Name of the Lock Protocol */ char ar_lockproto[GFS2_LOCKNAME_LEN]; /* Name of the Lock Protocol */
char ar_locktable[GFS2_LOCKNAME_LEN]; /* Name of the Lock Table */ char ar_locktable[GFS2_LOCKNAME_LEN]; /* Name of the Lock Table */
char ar_hostdata[GFS2_LOCKNAME_LEN]; /* Host specific data */ char ar_hostdata[GFS2_LOCKNAME_LEN]; /* Host specific data */
int ar_spectator; /* Don't get a journal because we're always RO */ unsigned int ar_spectator:1; /* Don't get a journal */
int ar_ignore_local_fs; /* Don't optimize even if local_fs is 1 */ unsigned int ar_ignore_local_fs:1; /* Ignore optimisations */
int ar_localflocks; /* Let the VFS do flock|fcntl locks for us */ unsigned int ar_localflocks:1; /* Let the VFS do flock|fcntl */
int ar_localcaching; /* Local-style caching (dangerous on multihost) */ unsigned int ar_localcaching:1; /* Local caching */
int ar_debug; /* Oops on errors instead of trying to be graceful */ unsigned int ar_debug:1; /* Oops on errors */
int ar_upgrade; /* Upgrade ondisk/multihost format */ unsigned int ar_upgrade:1; /* Upgrade ondisk format */
unsigned int ar_num_glockd; /* Number of glockd threads */ unsigned int ar_posix_acl:1; /* Enable posix acls */
int ar_posix_acl; /* Enable posix acls */ unsigned int ar_quota:2; /* off/account/on */
int ar_quota; /* off/account/on */ unsigned int ar_suiddir:1; /* suiddir support */
int ar_suiddir; /* suiddir support */ unsigned int ar_data:2; /* ordered/writeback */
int ar_data; /* ordered/writeback */ unsigned int ar_meta:1; /* mount metafs */
int ar_meta; /* mount metafs */ unsigned int ar_num_glockd; /* Number of glockd threads */
}; };
struct gfs2_tune { struct gfs2_tune {