You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
fs: Remove i_cindex from struct inode
The only user of the i_cindex element in the inode structure is used is by the firewire drivers. As part of an attempt to slim down the inode structure to save memory --- since a typical Linux system will have hundreds of thousands if not millions of inodes cached, a reduction in the size inode has high leverage. The firewire driver does not need i_cindex in any fast path, so it's simple enough to calculate when it is needed, instead of wasting space in the inode structure. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> Cc: krh@redhat.com Cc: stefanr@s5r6.in-berlin.de Cc: linux-fsdevel@vger.kernel.org Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
+13
-1
@@ -375,7 +375,6 @@ static int chrdev_open(struct inode *inode, struct file *filp)
|
||||
p = inode->i_cdev;
|
||||
if (!p) {
|
||||
inode->i_cdev = p = new;
|
||||
inode->i_cindex = idx;
|
||||
list_add(&inode->i_devices, &p->list);
|
||||
new = NULL;
|
||||
} else if (!cdev_get(p))
|
||||
@@ -405,6 +404,18 @@ static int chrdev_open(struct inode *inode, struct file *filp)
|
||||
return ret;
|
||||
}
|
||||
|
||||
int cdev_index(struct inode *inode)
|
||||
{
|
||||
int idx;
|
||||
struct kobject *kobj;
|
||||
|
||||
kobj = kobj_lookup(cdev_map, inode->i_rdev, &idx);
|
||||
if (!kobj)
|
||||
return -1;
|
||||
kobject_put(kobj);
|
||||
return idx;
|
||||
}
|
||||
|
||||
void cd_forget(struct inode *inode)
|
||||
{
|
||||
spin_lock(&cdev_lock);
|
||||
@@ -557,6 +568,7 @@ EXPORT_SYMBOL(cdev_init);
|
||||
EXPORT_SYMBOL(cdev_alloc);
|
||||
EXPORT_SYMBOL(cdev_del);
|
||||
EXPORT_SYMBOL(cdev_add);
|
||||
EXPORT_SYMBOL(cdev_index);
|
||||
EXPORT_SYMBOL(register_chrdev);
|
||||
EXPORT_SYMBOL(unregister_chrdev);
|
||||
EXPORT_SYMBOL(directly_mappable_cdev_bdi);
|
||||
|
||||
Reference in New Issue
Block a user