diff options
author | Theodore Ts'o <tytso@mit.edu> | 2006-09-27 04:50:46 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-09-27 11:26:17 -0400 |
commit | 8e18e2941c53416aa219708e7dcad21fb4bd6794 (patch) | |
tree | 44118f8b09556193ac93e0b71aecfa3e1d4bc182 /drivers/misc | |
parent | 6a1d9805ec506d8b9d04450997707da5f643d87c (diff) |
[PATCH] inode_diet: Replace inode.u.generic_ip with inode.i_private
The following patches reduce the size of the VFS inode structure by 28 bytes
on a UP x86. (It would be more on an x86_64 system). This is a 10% reduction
in the inode size on a UP kernel that is configured in a production mode
(i.e., with no spinlock or other debugging functions enabled; if you want to
save memory taken up by in-core inodes, the first thing you should do is
disable the debugging options; they are responsible for a huge amount of bloat
in the VFS inode structure).
This patch:
The filesystem or device-specific pointer in the inode is inside a union,
which is pretty pointless given that all 30+ users of this field have been
using the void pointer. Get rid of the union and rename it to i_private, with
a comment to explain who is allowed to use the void pointer. This is just a
cleanup, but it allows us to reuse the union 'u' for something something where
the union will actually be used.
[judith@osdl.org: powerpc build fix]
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Judith Lebzelter <judith@osdl.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/misc')
-rw-r--r-- | drivers/misc/ibmasm/ibmasmfs.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/drivers/misc/ibmasm/ibmasmfs.c b/drivers/misc/ibmasm/ibmasmfs.c index 4a35caff5d02..0e909b617226 100644 --- a/drivers/misc/ibmasm/ibmasmfs.c +++ b/drivers/misc/ibmasm/ibmasmfs.c | |||
@@ -175,7 +175,7 @@ static struct dentry *ibmasmfs_create_file (struct super_block *sb, | |||
175 | } | 175 | } |
176 | 176 | ||
177 | inode->i_fop = fops; | 177 | inode->i_fop = fops; |
178 | inode->u.generic_ip = data; | 178 | inode->i_private = data; |
179 | 179 | ||
180 | d_add(dentry, inode); | 180 | d_add(dentry, inode); |
181 | return dentry; | 181 | return dentry; |
@@ -244,7 +244,7 @@ static int command_file_open(struct inode *inode, struct file *file) | |||
244 | { | 244 | { |
245 | struct ibmasmfs_command_data *command_data; | 245 | struct ibmasmfs_command_data *command_data; |
246 | 246 | ||
247 | if (!inode->u.generic_ip) | 247 | if (!inode->i_private) |
248 | return -ENODEV; | 248 | return -ENODEV; |
249 | 249 | ||
250 | command_data = kmalloc(sizeof(struct ibmasmfs_command_data), GFP_KERNEL); | 250 | command_data = kmalloc(sizeof(struct ibmasmfs_command_data), GFP_KERNEL); |
@@ -252,7 +252,7 @@ static int command_file_open(struct inode *inode, struct file *file) | |||
252 | return -ENOMEM; | 252 | return -ENOMEM; |
253 | 253 | ||
254 | command_data->command = NULL; | 254 | command_data->command = NULL; |
255 | command_data->sp = inode->u.generic_ip; | 255 | command_data->sp = inode->i_private; |
256 | file->private_data = command_data; | 256 | file->private_data = command_data; |
257 | return 0; | 257 | return 0; |
258 | } | 258 | } |
@@ -351,10 +351,10 @@ static int event_file_open(struct inode *inode, struct file *file) | |||
351 | struct ibmasmfs_event_data *event_data; | 351 | struct ibmasmfs_event_data *event_data; |
352 | struct service_processor *sp; | 352 | struct service_processor *sp; |
353 | 353 | ||
354 | if (!inode->u.generic_ip) | 354 | if (!inode->i_private) |
355 | return -ENODEV; | 355 | return -ENODEV; |
356 | 356 | ||
357 | sp = inode->u.generic_ip; | 357 | sp = inode->i_private; |
358 | 358 | ||
359 | event_data = kmalloc(sizeof(struct ibmasmfs_event_data), GFP_KERNEL); | 359 | event_data = kmalloc(sizeof(struct ibmasmfs_event_data), GFP_KERNEL); |
360 | if (!event_data) | 360 | if (!event_data) |
@@ -439,14 +439,14 @@ static int r_heartbeat_file_open(struct inode *inode, struct file *file) | |||
439 | { | 439 | { |
440 | struct ibmasmfs_heartbeat_data *rhbeat; | 440 | struct ibmasmfs_heartbeat_data *rhbeat; |
441 | 441 | ||
442 | if (!inode->u.generic_ip) | 442 | if (!inode->i_private) |
443 | return -ENODEV; | 443 | return -ENODEV; |
444 | 444 | ||
445 | rhbeat = kmalloc(sizeof(struct ibmasmfs_heartbeat_data), GFP_KERNEL); | 445 | rhbeat = kmalloc(sizeof(struct ibmasmfs_heartbeat_data), GFP_KERNEL); |
446 | if (!rhbeat) | 446 | if (!rhbeat) |
447 | return -ENOMEM; | 447 | return -ENOMEM; |
448 | 448 | ||
449 | rhbeat->sp = (struct service_processor *)inode->u.generic_ip; | 449 | rhbeat->sp = inode->i_private; |
450 | rhbeat->active = 0; | 450 | rhbeat->active = 0; |
451 | ibmasm_init_reverse_heartbeat(rhbeat->sp, &rhbeat->heartbeat); | 451 | ibmasm_init_reverse_heartbeat(rhbeat->sp, &rhbeat->heartbeat); |
452 | file->private_data = rhbeat; | 452 | file->private_data = rhbeat; |
@@ -508,7 +508,7 @@ static ssize_t r_heartbeat_file_write(struct file *file, const char __user *buf, | |||
508 | 508 | ||
509 | static int remote_settings_file_open(struct inode *inode, struct file *file) | 509 | static int remote_settings_file_open(struct inode *inode, struct file *file) |
510 | { | 510 | { |
511 | file->private_data = inode->u.generic_ip; | 511 | file->private_data = inode->i_private; |
512 | return 0; | 512 | return 0; |
513 | } | 513 | } |
514 | 514 | ||