diff options
-rw-r--r-- | Documentation/filesystems/Locking | 2 | ||||
-rw-r--r-- | Documentation/filesystems/vfs.txt | 4 | ||||
-rw-r--r-- | fs/inode.c | 3 | ||||
-rw-r--r-- | include/linux/fs.h | 5 |
4 files changed, 0 insertions, 14 deletions
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking index c2992bc54f2f..8b22d7d8b991 100644 --- a/Documentation/filesystems/Locking +++ b/Documentation/filesystems/Locking | |||
@@ -92,7 +92,6 @@ prototypes: | |||
92 | void (*destroy_inode)(struct inode *); | 92 | void (*destroy_inode)(struct inode *); |
93 | void (*dirty_inode) (struct inode *); | 93 | void (*dirty_inode) (struct inode *); |
94 | int (*write_inode) (struct inode *, int); | 94 | int (*write_inode) (struct inode *, int); |
95 | void (*put_inode) (struct inode *); | ||
96 | void (*drop_inode) (struct inode *); | 95 | void (*drop_inode) (struct inode *); |
97 | void (*delete_inode) (struct inode *); | 96 | void (*delete_inode) (struct inode *); |
98 | void (*put_super) (struct super_block *); | 97 | void (*put_super) (struct super_block *); |
@@ -115,7 +114,6 @@ alloc_inode: no no no | |||
115 | destroy_inode: no | 114 | destroy_inode: no |
116 | dirty_inode: no (must not sleep) | 115 | dirty_inode: no (must not sleep) |
117 | write_inode: no | 116 | write_inode: no |
118 | put_inode: no | ||
119 | drop_inode: no !!!inode_lock!!! | 117 | drop_inode: no !!!inode_lock!!! |
120 | delete_inode: no | 118 | delete_inode: no |
121 | put_super: yes yes no | 119 | put_super: yes yes no |
diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt index 81e5be6e6e35..b7522c6cbae3 100644 --- a/Documentation/filesystems/vfs.txt +++ b/Documentation/filesystems/vfs.txt | |||
@@ -205,7 +205,6 @@ struct super_operations { | |||
205 | 205 | ||
206 | void (*dirty_inode) (struct inode *); | 206 | void (*dirty_inode) (struct inode *); |
207 | int (*write_inode) (struct inode *, int); | 207 | int (*write_inode) (struct inode *, int); |
208 | void (*put_inode) (struct inode *); | ||
209 | void (*drop_inode) (struct inode *); | 208 | void (*drop_inode) (struct inode *); |
210 | void (*delete_inode) (struct inode *); | 209 | void (*delete_inode) (struct inode *); |
211 | void (*put_super) (struct super_block *); | 210 | void (*put_super) (struct super_block *); |
@@ -246,9 +245,6 @@ or bottom half). | |||
246 | inode to disc. The second parameter indicates whether the write | 245 | inode to disc. The second parameter indicates whether the write |
247 | should be synchronous or not, not all filesystems check this flag. | 246 | should be synchronous or not, not all filesystems check this flag. |
248 | 247 | ||
249 | put_inode: called when the VFS inode is removed from the inode | ||
250 | cache. | ||
251 | |||
252 | drop_inode: called when the last access to the inode is dropped, | 248 | drop_inode: called when the last access to the inode is dropped, |
253 | with the inode_lock spinlock held. | 249 | with the inode_lock spinlock held. |
254 | 250 | ||
diff --git a/fs/inode.c b/fs/inode.c index bf6478130424..18bdce14b70c 100644 --- a/fs/inode.c +++ b/fs/inode.c | |||
@@ -1153,9 +1153,6 @@ void iput(struct inode *inode) | |||
1153 | 1153 | ||
1154 | BUG_ON(inode->i_state == I_CLEAR); | 1154 | BUG_ON(inode->i_state == I_CLEAR); |
1155 | 1155 | ||
1156 | if (op && op->put_inode) | ||
1157 | op->put_inode(inode); | ||
1158 | |||
1159 | if (atomic_dec_and_lock(&inode->i_count, &inode_lock)) | 1156 | if (atomic_dec_and_lock(&inode->i_count, &inode_lock)) |
1160 | iput_final(inode); | 1157 | iput_final(inode); |
1161 | } | 1158 | } |
diff --git a/include/linux/fs.h b/include/linux/fs.h index a1ba005d08e7..7e0fa9e64479 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -1289,17 +1289,12 @@ extern ssize_t vfs_readv(struct file *, const struct iovec __user *, | |||
1289 | extern ssize_t vfs_writev(struct file *, const struct iovec __user *, | 1289 | extern ssize_t vfs_writev(struct file *, const struct iovec __user *, |
1290 | unsigned long, loff_t *); | 1290 | unsigned long, loff_t *); |
1291 | 1291 | ||
1292 | /* | ||
1293 | * NOTE: write_inode, delete_inode, clear_inode, put_inode can be called | ||
1294 | * without the big kernel lock held in all filesystems. | ||
1295 | */ | ||
1296 | struct super_operations { | 1292 | struct super_operations { |
1297 | struct inode *(*alloc_inode)(struct super_block *sb); | 1293 | struct inode *(*alloc_inode)(struct super_block *sb); |
1298 | void (*destroy_inode)(struct inode *); | 1294 | void (*destroy_inode)(struct inode *); |
1299 | 1295 | ||
1300 | void (*dirty_inode) (struct inode *); | 1296 | void (*dirty_inode) (struct inode *); |
1301 | int (*write_inode) (struct inode *, int); | 1297 | int (*write_inode) (struct inode *, int); |
1302 | void (*put_inode) (struct inode *); | ||
1303 | void (*drop_inode) (struct inode *); | 1298 | void (*drop_inode) (struct inode *); |
1304 | void (*delete_inode) (struct inode *); | 1299 | void (*delete_inode) (struct inode *); |
1305 | void (*put_super) (struct super_block *); | 1300 | void (*put_super) (struct super_block *); |