summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-06-09 17:55:20 +0200
committerAl Viro <viro@zeniv.linux.org.uk>2012-07-14 14:32:51 +0200
commit049b3c10eecd0a5f3605fa3cd13f638593213ccb (patch)
tree853abc0f6cf725ae9b5c340476b7e0fb34e9ae22
parentadfs: don't bother with ->i_dentry in ->destroy_inode() (diff)
downloadlinux-049b3c10eecd0a5f3605fa3cd13f638593213ccb.tar.xz
linux-049b3c10eecd0a5f3605fa3cd13f638593213ccb.zip
vfs: update documentation on ->i_dentry handling
we used to need to clean it in RCU callback freeing an inode; in 3.2 that requirement went away. Unfortunately, it hadn't been reflected in Documentation/filesystems/porting. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r--Documentation/filesystems/porting10
1 files changed, 4 insertions, 6 deletions
diff --git a/Documentation/filesystems/porting b/Documentation/filesystems/porting
index 8c91d1057d9a..ed9fbc23ece0 100644
--- a/Documentation/filesystems/porting
+++ b/Documentation/filesystems/porting
@@ -355,12 +355,10 @@ protects *all* the dcache state of a given dentry.
via rcu-walk path walk (basically, if the file can have had a path name in the
vfs namespace).
- i_dentry and i_rcu share storage in a union, and the vfs expects
-i_dentry to be reinitialized before it is freed, so an:
-
- INIT_LIST_HEAD(&inode->i_dentry);
-
-must be done in the RCU callback.
+ Even though i_dentry and i_rcu share storage in a union, we will
+initialize the former in inode_init_always(), so just leave it alone in
+the callback. It used to be necessary to clean it there, but not anymore
+(starting at 3.2).
--
[recommended]