diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-06-09 17:55:20 +0200 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-07-14 14:32:51 +0200 |
commit | 049b3c10eecd0a5f3605fa3cd13f638593213ccb (patch) | |
tree | 853abc0f6cf725ae9b5c340476b7e0fb34e9ae22 | |
parent | adfs: don't bother with ->i_dentry in ->destroy_inode() (diff) | |
download | linux-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/porting | 10 |
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] |