diff options
author | Richard Kennedy <richard@rsk.demon.co.uk> | 2010-01-26 09:12:43 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2010-03-03 14:07:55 -0500 |
commit | 270ba5f7c5dac0bfb564aa35a536fb31ad4075bd (patch) | |
tree | f1e3247c9ca36d92ea87be5d72e66656d24b71bd /include/linux/fs.h | |
parent | f1771ffaac29a7a4e321ddd94d7873bc0dcefd41 (diff) |
fs: re-order super_block to remove 16 bytes of padding on 64bit builds
re-order structure super_block to remove 16 bytes of alignment padding
on 64bit builds.
This shrinks the size of super_block from 712 to 696 bytes so requiring
one fewer 64 byte cache lines.
Signed-off-by: Richard Kennedy <richard@rsk.demon.co.uk>
-----
patch against 2.6.33-rc5
compiled & tested on x86_64 AMDX2 desktop machine.
I've been running with this patch applied for several weeks with no
problems.
regards
Richard
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'include/linux/fs.h')
-rw-r--r-- | include/linux/fs.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h index 2b124c825e38..aa76dae673eb 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -1314,9 +1314,9 @@ extern spinlock_t sb_lock; | |||
1314 | struct super_block { | 1314 | struct super_block { |
1315 | struct list_head s_list; /* Keep this first */ | 1315 | struct list_head s_list; /* Keep this first */ |
1316 | dev_t s_dev; /* search index; _not_ kdev_t */ | 1316 | dev_t s_dev; /* search index; _not_ kdev_t */ |
1317 | unsigned long s_blocksize; | ||
1318 | unsigned char s_blocksize_bits; | ||
1319 | unsigned char s_dirt; | 1317 | unsigned char s_dirt; |
1318 | unsigned char s_blocksize_bits; | ||
1319 | unsigned long s_blocksize; | ||
1320 | loff_t s_maxbytes; /* Max file size */ | 1320 | loff_t s_maxbytes; /* Max file size */ |
1321 | struct file_system_type *s_type; | 1321 | struct file_system_type *s_type; |
1322 | const struct super_operations *s_op; | 1322 | const struct super_operations *s_op; |
@@ -1357,16 +1357,16 @@ struct super_block { | |||
1357 | void *s_fs_info; /* Filesystem private info */ | 1357 | void *s_fs_info; /* Filesystem private info */ |
1358 | fmode_t s_mode; | 1358 | fmode_t s_mode; |
1359 | 1359 | ||
1360 | /* Granularity of c/m/atime in ns. | ||
1361 | Cannot be worse than a second */ | ||
1362 | u32 s_time_gran; | ||
1363 | |||
1360 | /* | 1364 | /* |
1361 | * The next field is for VFS *only*. No filesystems have any business | 1365 | * The next field is for VFS *only*. No filesystems have any business |
1362 | * even looking at it. You had been warned. | 1366 | * even looking at it. You had been warned. |
1363 | */ | 1367 | */ |
1364 | struct mutex s_vfs_rename_mutex; /* Kludge */ | 1368 | struct mutex s_vfs_rename_mutex; /* Kludge */ |
1365 | 1369 | ||
1366 | /* Granularity of c/m/atime in ns. | ||
1367 | Cannot be worse than a second */ | ||
1368 | u32 s_time_gran; | ||
1369 | |||
1370 | /* | 1370 | /* |
1371 | * Filesystem subtype. If non-empty the filesystem type field | 1371 | * Filesystem subtype. If non-empty the filesystem type field |
1372 | * in /proc/mounts will be "type.subtype" | 1372 | * in /proc/mounts will be "type.subtype" |