aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/misc
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2006-09-27 04:50:46 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-09-27 11:26:17 -0400
commit8e18e2941c53416aa219708e7dcad21fb4bd6794 (patch)
tree44118f8b09556193ac93e0b71aecfa3e1d4bc182 /drivers/misc
parent6a1d9805ec506d8b9d04450997707da5f643d87c (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.c16
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
509static int remote_settings_file_open(struct inode *inode, struct file *file) 509static 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