diff options
author | Nick Piggin <npiggin@kernel.dk> | 2011-01-07 01:49:57 -0500 |
---|---|---|
committer | Nick Piggin <npiggin@kernel.dk> | 2011-01-07 01:50:29 -0500 |
commit | 34286d6662308d82aed891852d04c7c3a2649b16 (patch) | |
tree | c4b7311404d302e7cb94df7a4690298e1059910a /Documentation/filesystems/Locking | |
parent | 44a7d7a878c9cbb74f236ea755b25b6b2e26a9a9 (diff) |
fs: rcu-walk aware d_revalidate method
Require filesystems be aware of .d_revalidate being called in rcu-walk
mode (nd->flags & LOOKUP_RCU). For now do a simple push down, returning
-ECHILD from all implementations.
Signed-off-by: Nick Piggin <npiggin@kernel.dk>
Diffstat (limited to 'Documentation/filesystems/Locking')
-rw-r--r-- | Documentation/filesystems/Locking | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking index bdad6414dfa0..e90ffe61eb65 100644 --- a/Documentation/filesystems/Locking +++ b/Documentation/filesystems/Locking | |||
@@ -9,7 +9,7 @@ be able to use diff(1). | |||
9 | 9 | ||
10 | --------------------------- dentry_operations -------------------------- | 10 | --------------------------- dentry_operations -------------------------- |
11 | prototypes: | 11 | prototypes: |
12 | int (*d_revalidate)(struct dentry *, int); | 12 | int (*d_revalidate)(struct dentry *, struct nameidata *); |
13 | int (*d_hash)(const struct dentry *, const struct inode *, | 13 | int (*d_hash)(const struct dentry *, const struct inode *, |
14 | struct qstr *); | 14 | struct qstr *); |
15 | int (*d_compare)(const struct dentry *, const struct inode *, | 15 | int (*d_compare)(const struct dentry *, const struct inode *, |
@@ -21,14 +21,14 @@ prototypes: | |||
21 | char *(*d_dname)((struct dentry *dentry, char *buffer, int buflen); | 21 | char *(*d_dname)((struct dentry *dentry, char *buffer, int buflen); |
22 | 22 | ||
23 | locking rules: | 23 | locking rules: |
24 | rename_lock ->d_lock may block | 24 | rename_lock ->d_lock may block rcu-walk |
25 | d_revalidate: no no yes | 25 | d_revalidate: no no yes (ref-walk) maybe |
26 | d_hash no no no | 26 | d_hash no no no maybe |
27 | d_compare: yes no no | 27 | d_compare: yes no no maybe |
28 | d_delete: no yes no | 28 | d_delete: no yes no no |
29 | d_release: no no yes | 29 | d_release: no no yes no |
30 | d_iput: no no yes | 30 | d_iput: no no yes no |
31 | d_dname: no no no | 31 | d_dname: no no no no |
32 | 32 | ||
33 | --------------------------- inode_operations --------------------------- | 33 | --------------------------- inode_operations --------------------------- |
34 | prototypes: | 34 | prototypes: |