diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-24 22:01:30 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-24 22:01:30 -0400 |
| commit | d39dd11c3e6a7af5c20bfac40594db36cf270f42 (patch) | |
| tree | 6384e07fa2f347b286cde9754c4507b5a738ab47 /Documentation/filesystems | |
| parent | 30f5b28e7f937608e0407edaa459cc8161de81d9 (diff) | |
| parent | 0b2d0724e26a335cd326eb7ad552c109116a8795 (diff) | |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:
fs: simplify iget & friends
fs: pull inode->i_lock up out of writeback_single_inode
fs: rename inode_lock to inode_hash_lock
fs: move i_wb_list out from under inode_lock
fs: move i_sb_list out from under inode_lock
fs: remove inode_lock from iput_final and prune_icache
fs: Lock the inode LRU list separately
fs: factor inode disposal
fs: protect inode->i_state with inode->i_lock
autofs4: Do not potentially dereference NULL pointer returned by fget() in autofs_dev_ioctl_setpipefd()
autofs4 - remove autofs4_lock
autofs4 - fix d_manage() return on rcu-walk
autofs4 - fix autofs4_expire_indirect() traversal
autofs4 - fix dentry leak in autofs4_expire_direct()
autofs4 - reinstate last used update on access
vfs - check non-mountpoint dentry might block in __follow_mount_rcu()
Diffstat (limited to 'Documentation/filesystems')
| -rw-r--r-- | Documentation/filesystems/Locking | 2 | ||||
| -rw-r--r-- | Documentation/filesystems/porting | 16 | ||||
| -rw-r--r-- | Documentation/filesystems/vfs.txt | 2 |
3 files changed, 13 insertions, 7 deletions
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking index 2e994efe12c..61b31acb917 100644 --- a/Documentation/filesystems/Locking +++ b/Documentation/filesystems/Locking | |||
| @@ -128,7 +128,7 @@ alloc_inode: | |||
| 128 | destroy_inode: | 128 | destroy_inode: |
| 129 | dirty_inode: (must not sleep) | 129 | dirty_inode: (must not sleep) |
| 130 | write_inode: | 130 | write_inode: |
| 131 | drop_inode: !!!inode_lock!!! | 131 | drop_inode: !!!inode->i_lock!!! |
| 132 | evict_inode: | 132 | evict_inode: |
| 133 | put_super: write | 133 | put_super: write |
| 134 | write_super: read | 134 | write_super: read |
diff --git a/Documentation/filesystems/porting b/Documentation/filesystems/porting index 0c986c9e851..6e29954851a 100644 --- a/Documentation/filesystems/porting +++ b/Documentation/filesystems/porting | |||
| @@ -298,11 +298,14 @@ be used instead. It gets called whenever the inode is evicted, whether it has | |||
| 298 | remaining links or not. Caller does *not* evict the pagecache or inode-associated | 298 | remaining links or not. Caller does *not* evict the pagecache or inode-associated |
| 299 | metadata buffers; getting rid of those is responsibility of method, as it had | 299 | metadata buffers; getting rid of those is responsibility of method, as it had |
| 300 | been for ->delete_inode(). | 300 | been for ->delete_inode(). |
| 301 | ->drop_inode() returns int now; it's called on final iput() with inode_lock | 301 | |
| 302 | held and it returns true if filesystems wants the inode to be dropped. As before, | 302 | ->drop_inode() returns int now; it's called on final iput() with |
| 303 | generic_drop_inode() is still the default and it's been updated appropriately. | 303 | inode->i_lock held and it returns true if filesystems wants the inode to be |
| 304 | generic_delete_inode() is also alive and it consists simply of return 1. Note that | 304 | dropped. As before, generic_drop_inode() is still the default and it's been |
| 305 | all actual eviction work is done by caller after ->drop_inode() returns. | 305 | updated appropriately. generic_delete_inode() is also alive and it consists |
| 306 | simply of return 1. Note that all actual eviction work is done by caller after | ||
| 307 | ->drop_inode() returns. | ||
| 308 | |||
| 306 | clear_inode() is gone; use end_writeback() instead. As before, it must | 309 | clear_inode() is gone; use end_writeback() instead. As before, it must |
| 307 | be called exactly once on each call of ->evict_inode() (as it used to be for | 310 | be called exactly once on each call of ->evict_inode() (as it used to be for |
| 308 | each call of ->delete_inode()). Unlike before, if you are using inode-associated | 311 | each call of ->delete_inode()). Unlike before, if you are using inode-associated |
| @@ -397,6 +400,9 @@ a file off. | |||
| 397 | 400 | ||
| 398 | -- | 401 | -- |
| 399 | [mandatory] | 402 | [mandatory] |
| 403 | |||
| 404 | -- | ||
| 405 | [mandatory] | ||
| 400 | ->get_sb() is gone. Switch to use of ->mount(). Typically it's just | 406 | ->get_sb() is gone. Switch to use of ->mount(). Typically it's just |
| 401 | a matter of switching from calling get_sb_... to mount_... and changing the | 407 | a matter of switching from calling get_sb_... to mount_... and changing the |
| 402 | function type. If you were doing it manually, just switch from setting ->mnt_root | 408 | function type. If you were doing it manually, just switch from setting ->mnt_root |
diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt index 306f0ae8df0..80815ed654c 100644 --- a/Documentation/filesystems/vfs.txt +++ b/Documentation/filesystems/vfs.txt | |||
| @@ -254,7 +254,7 @@ or bottom half). | |||
| 254 | should be synchronous or not, not all filesystems check this flag. | 254 | should be synchronous or not, not all filesystems check this flag. |
| 255 | 255 | ||
| 256 | drop_inode: called when the last access to the inode is dropped, | 256 | drop_inode: called when the last access to the inode is dropped, |
| 257 | with the inode_lock spinlock held. | 257 | with the inode->i_lock spinlock held. |
| 258 | 258 | ||
| 259 | This method should be either NULL (normal UNIX filesystem | 259 | This method should be either NULL (normal UNIX filesystem |
| 260 | semantics) or "generic_delete_inode" (for filesystems that do not | 260 | semantics) or "generic_delete_inode" (for filesystems that do not |
