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 *); |
