patch-2.4.5 linux/fs/inode.c
Next file: linux/fs/isofs/util.c
Previous file: linux/fs/freevxfs/vxfs_super.c
Back to the patch index
Back to the overall index
- Lines: 57
- Date:
Tue May 22 09:35:42 2001
- Orig file:
v2.4.4/linux/fs/inode.c
- Orig date:
Fri Apr 27 14:11:30 2001
diff -u --recursive --new-file v2.4.4/linux/fs/inode.c linux/fs/inode.c
@@ -497,6 +497,10 @@
bdput(inode->i_bdev);
inode->i_bdev = NULL;
}
+ if (inode->i_cdev) {
+ cdput(inode->i_cdev);
+ inode->i_cdev = NULL;
+ }
inode->i_state = I_CLEAR;
}
@@ -591,6 +595,22 @@
return busy;
}
+
+int invalidate_device(kdev_t dev, int do_sync)
+{
+ struct super_block *sb = get_super(dev);
+ int res;
+
+ if (do_sync)
+ fsync_dev(dev);
+
+ res = 0;
+ if (sb)
+ res = invalidate_inodes(sb);
+ invalidate_buffers(dev);
+ return res;
+}
+
/*
* This is called with the inode lock held. It searches
@@ -612,12 +632,13 @@
{
LIST_HEAD(list);
struct list_head *entry, *freeable = &list;
- int count = 0, synced = 0;
+ int count, synced = 0;
struct inode * inode;
spin_lock(&inode_lock);
free_unused:
+ count = 0;
entry = inode_unused.prev;
while (entry != &inode_unused)
{
@@ -733,6 +754,7 @@
memset(&inode->i_dquot, 0, sizeof(inode->i_dquot));
inode->i_pipe = NULL;
inode->i_bdev = NULL;
+ inode->i_cdev = NULL;
inode->i_data.a_ops = &empty_aops;
inode->i_data.host = inode;
inode->i_data.gfp_mask = GFP_HIGHUSER;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)