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: |
