patch-2.4.0-test8 linux/drivers/usb/inode.c
Next file: linux/drivers/usb/microtek.c
Previous file: linux/drivers/usb/ibmcam.c
Back to the patch index
Back to the overall index
- Lines: 67
- Date:
Thu Sep 7 08:38:06 2000
- Orig file:
v2.4.0-test7/linux/drivers/usb/inode.c
- Orig date:
Wed Aug 23 18:36:38 2000
diff -u --recursive --new-file v2.4.0-test7/linux/drivers/usb/inode.c linux/drivers/usb/inode.c
@@ -48,6 +48,7 @@
struct special {
const char *name;
struct file_operations *fops;
+ struct inode *inode;
struct list_head inodes;
};
@@ -572,6 +573,7 @@
inode->i_uid = listuid;
inode->i_gid = listgid;
inode->i_mode = listmode | S_IFREG;
+ special[i].inode = inode;
list_add_tail(&inode->u.usbdev_i.slist, &s->u.usbdevfs_sb.ilist);
list_add_tail(&inode->u.usbdev_i.dlist, &special[i].inodes);
}
@@ -598,6 +600,17 @@
/* --------------------------------------------------------------------- */
+static void update_special_inodes (void)
+{
+ int i;
+ for (i = 0; i < NRSPECIAL; i++) {
+ struct inode *inode = special[i].inode;
+ if (inode)
+ inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
+ }
+}
+
+
void usbdevfs_add_bus(struct usb_bus *bus)
{
struct list_head *slist;
@@ -605,6 +618,7 @@
lock_kernel();
for (slist = superlist.next; slist != &superlist; slist = slist->next)
new_bus_inode(bus, list_entry(slist, struct super_block, u.usbdevfs_sb.slist));
+ update_special_inodes();
unlock_kernel();
usbdevfs_conn_disc_event();
}
@@ -614,6 +628,7 @@
lock_kernel();
while (!list_empty(&bus->inodes))
free_inode(list_entry(bus->inodes.next, struct inode, u.usbdev_i.dlist));
+ update_special_inodes();
unlock_kernel();
usbdevfs_conn_disc_event();
}
@@ -625,6 +640,7 @@
lock_kernel();
for (slist = superlist.next; slist != &superlist; slist = slist->next)
new_dev_inode(dev, list_entry(slist, struct super_block, u.usbdevfs_sb.slist));
+ update_special_inodes();
unlock_kernel();
usbdevfs_conn_disc_event();
}
@@ -652,6 +668,8 @@
send_sig_info(ds->discsignr, &sinfo, ds->disctask);
}
}
+
+ update_special_inodes();
unlock_kernel();
usbdevfs_conn_disc_event();
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)