diff options
author | Nick Piggin <npiggin@kernel.dk> | 2011-01-07 01:49:27 -0500 |
---|---|---|
committer | Nick Piggin <npiggin@kernel.dk> | 2011-01-07 01:50:19 -0500 |
commit | 621e155a3591962420eacdd39f6f0aa29ceb221e (patch) | |
tree | 387a9fb396f1bf24514b712c294182e36ba51076 /fs/hfs/hfs_fs.h | |
parent | fb2d5b86aff355a27ebfc132d3c99f4a940cc3fe (diff) |
fs: change d_compare for rcu-walk
Change d_compare so it may be called from lock-free RCU lookups. This
does put significant restrictions on what may be done from the callback,
however there don't seem to have been any problems with in-tree fses.
If some strange use case pops up that _really_ cannot cope with the
rcu-walk rules, we can just add new rcu-unaware callbacks, which would
cause name lookup to drop out of rcu-walk mode.
For in-tree filesystems, this is just a mechanical change.
Signed-off-by: Nick Piggin <npiggin@kernel.dk>
Diffstat (limited to 'fs/hfs/hfs_fs.h')
-rw-r--r-- | fs/hfs/hfs_fs.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/hfs/hfs_fs.h b/fs/hfs/hfs_fs.h index c8cffb81e849..8cd876f0e961 100644 --- a/fs/hfs/hfs_fs.h +++ b/fs/hfs/hfs_fs.h | |||
@@ -216,7 +216,10 @@ extern const struct dentry_operations hfs_dentry_operations; | |||
216 | extern int hfs_hash_dentry(struct dentry *, struct qstr *); | 216 | extern int hfs_hash_dentry(struct dentry *, struct qstr *); |
217 | extern int hfs_strcmp(const unsigned char *, unsigned int, | 217 | extern int hfs_strcmp(const unsigned char *, unsigned int, |
218 | const unsigned char *, unsigned int); | 218 | const unsigned char *, unsigned int); |
219 | extern int hfs_compare_dentry(struct dentry *, struct qstr *, struct qstr *); | 219 | extern int hfs_compare_dentry(const struct dentry *parent, |
220 | const struct inode *pinode, | ||
221 | const struct dentry *dentry, const struct inode *inode, | ||
222 | unsigned int len, const char *str, const struct qstr *name); | ||
220 | 223 | ||
221 | /* trans.c */ | 224 | /* trans.c */ |
222 | extern void hfs_asc2mac(struct super_block *, struct hfs_name *, struct qstr *); | 225 | extern void hfs_asc2mac(struct super_block *, struct hfs_name *, struct qstr *); |