summaryrefslogtreecommitdiff
path: root/Documentation/filesystems/porting
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2013-11-06 09:54:52 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2013-11-09 00:16:31 -0500
commit5a3cd99285dc793a4022fa75ceeb323eb6d29ac9 (patch)
tree84d6be981f67655016a62febd87f89bec53c89b3 /Documentation/filesystems/porting
parentb18825a7c8e37a7cf6abb97a12a6ad71af160de7 (diff)
downloadlwn-5a3cd99285dc793a4022fa75ceeb323eb6d29ac9.tar.gz
lwn-5a3cd99285dc793a4022fa75ceeb323eb6d29ac9.zip
iget/iget5: don't bother with ->i_lock until we find a match
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'Documentation/filesystems/porting')
-rw-r--r--Documentation/filesystems/porting8
1 files changed, 8 insertions, 0 deletions
diff --git a/Documentation/filesystems/porting b/Documentation/filesystems/porting
index f0890581f7f6..fe2b7ae6f962 100644
--- a/Documentation/filesystems/porting
+++ b/Documentation/filesystems/porting
@@ -455,3 +455,11 @@ in your dentry operations instead.
vfs_follow_link has been removed. Filesystems must use nd_set_link
from ->follow_link for normal symlinks, or nd_jump_link for magic
/proc/<pid> style links.
+--
+[mandatory]
+ iget5_locked()/ilookup5()/ilookup5_nowait() test() callback used to be
+ called with both ->i_lock and inode_hash_lock held; the former is *not*
+ taken anymore, so verify that your callbacks do not rely on it (none
+ of the in-tree instances did). inode_hash_lock is still held,
+ of course, so they are still serialized wrt removal from inode hash,
+ as well as wrt set() callback of iget5_locked().