summaryrefslogtreecommitdiffstats
path: root/drivers/usb/inode.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/inode.c')
-rw-r--r--drivers/usb/inode.c40
1 files changed, 11 insertions, 29 deletions
diff --git a/drivers/usb/inode.c b/drivers/usb/inode.c
index 3c80bb8be..2306615f0 100644
--- a/drivers/usb/inode.c
+++ b/drivers/usb/inode.c
@@ -46,24 +46,17 @@
static LIST_HEAD(superlist);
extern struct inode_operations usbdevfs_bus_inode_operations;
-
-static struct inode_operations devices_inode_operations = {
- &usbdevfs_devices_fops
-};
-
-static struct inode_operations drivers_inode_operations = {
- &usbdevfs_drivers_fops
-};
+extern struct file_operations usbdevfs_bus_file_operations;
struct special {
const char *name;
- struct inode_operations *iops;
+ struct file_operations *fops;
struct list_head inodes;
};
static struct special special[] = {
- { "devices", &devices_inode_operations, },
- { "drivers", &drivers_inode_operations, }
+ { "devices", &usbdevfs_devices_fops, },
+ { "drivers", &usbdevfs_drivers_fops, }
};
#define NRSPECIAL (sizeof(special)/sizeof(special[0]))
@@ -110,7 +103,7 @@ static void new_dev_inode(struct usb_device *dev, struct super_block *sb)
inode->i_uid = sb->u.usbdevfs_sb.devuid;
inode->i_gid = sb->u.usbdevfs_sb.devgid;
inode->i_mode = sb->u.usbdevfs_sb.devmode | S_IFREG;
- inode->i_op = &usbdevfs_device_inode_operations;
+ inode->i_fop = &usbdevfs_device_file_operations;
inode->i_size = sizeof(struct usb_device_descriptor);
inode->u.usbdev_i.p.dev = dev;
list_add_tail(&inode->u.usbdev_i.slist, &sb->u.usbdevfs_sb.ilist);
@@ -148,6 +141,7 @@ static void new_bus_inode(struct usb_bus *bus, struct super_block *sb)
inode->i_gid = sb->u.usbdevfs_sb.busgid;
inode->i_mode = sb->u.usbdevfs_sb.busmode | S_IFDIR;
inode->i_op = &usbdevfs_bus_inode_operations;
+ inode->i_fop = &usbdevfs_bus_file_operations;
inode->u.usbdev_i.p.bus = bus;
list_add_tail(&inode->u.usbdev_i.slist, &sb->u.usbdevfs_sb.ilist);
list_add_tail(&inode->u.usbdev_i.dlist, &bus->inodes);
@@ -159,7 +153,6 @@ static void free_inode(struct inode *inode)
inode->u.usbdev_i.p.dev = NULL;
inode->i_mode &= ~S_IRWXUGO;
inode->i_uid = inode->i_gid = 0;
- inode->i_op = NULL;
inode->i_size = 0;
list_del(&inode->u.usbdev_i.slist);
INIT_LIST_HEAD(&inode->u.usbdev_i.slist);
@@ -405,7 +398,6 @@ static struct file_operations usbdevfs_root_file_operations = {
};
static struct inode_operations usbdevfs_root_inode_operations = {
- default_file_ops: &usbdevfs_root_file_operations,
lookup: usbdevfs_root_lookup,
};
@@ -414,7 +406,6 @@ static struct file_operations usbdevfs_bus_file_operations = {
};
static struct inode_operations usbdevfs_bus_inode_operations = {
- default_file_ops: &usbdevfs_bus_file_operations,
lookup: usbdevfs_bus_lookup,
};
@@ -433,13 +424,14 @@ static void usbdevfs_read_inode(struct inode *inode)
case ISPECIAL:
if (inode->i_ino == IROOT) {
inode->i_op = &usbdevfs_root_inode_operations;
+ inode->i_fop = &usbdevfs_root_file_operations;
inode->i_mode = S_IFDIR | S_IRUGO | S_IXUGO;
return;
}
if (inode->i_ino <= IROOT || inode->i_ino > IROOT+NRSPECIAL)
return;
spec = &special[inode->i_ino-(IROOT+1)];
- inode->i_op = spec->iops;
+ inode->i_fop = spec->fops;
return;
case IDEVICE:
@@ -453,10 +445,6 @@ static void usbdevfs_read_inode(struct inode *inode)
}
}
-static void usbdevfs_put_inode(struct inode *inode)
-{
-}
-
static void usbdevfs_put_super(struct super_block *sb)
{
list_del(&sb->u.usbdevfs_sb.slist);
@@ -482,15 +470,9 @@ static int usbdevfs_statfs(struct super_block *sb, struct statfs *buf, int bufsi
}
static struct super_operations usbdevfs_sops = {
- usbdevfs_read_inode,
- NULL,
- usbdevfs_put_inode,
- NULL,
- NULL,
- usbdevfs_put_super,
- NULL,
- usbdevfs_statfs,
- NULL
+ read_inode: usbdevfs_read_inode,
+ put_super: usbdevfs_put_super,
+ statfs: usbdevfs_statfs,
};
struct super_block *usbdevfs_read_super(struct super_block *s, void *data, int silent)