diff options
author | Nick Piggin <npiggin@kernel.dk> | 2011-01-07 01:49:28 -0500 |
---|---|---|
committer | Nick Piggin <npiggin@kernel.dk> | 2011-01-07 01:50:20 -0500 |
commit | b1e6a015a580ad145689ad1d6b4aa0e03e6c868b (patch) | |
tree | 57a10ef164e4d2f798d9b832dbeaf973aca2ab83 /drivers/staging/smbfs | |
parent | 621e155a3591962420eacdd39f6f0aa29ceb221e (diff) |
fs: change d_hash for rcu-walk
Change d_hash so it may be called from lock-free RCU lookups. See similar
patch for d_compare for details.
For in-tree filesystems, this is just a mechanical change.
Signed-off-by: Nick Piggin <npiggin@kernel.dk>
Diffstat (limited to 'drivers/staging/smbfs')
-rw-r--r-- | drivers/staging/smbfs/cache.c | 2 | ||||
-rw-r--r-- | drivers/staging/smbfs/dir.c | 6 |
2 files changed, 5 insertions, 3 deletions
diff --git a/drivers/staging/smbfs/cache.c b/drivers/staging/smbfs/cache.c index dbd2e1df3ba..0beded260b0 100644 --- a/drivers/staging/smbfs/cache.c +++ b/drivers/staging/smbfs/cache.c | |||
@@ -134,7 +134,7 @@ smb_fill_cache(struct file *filp, void *dirent, filldir_t filldir, | |||
134 | qname->hash = full_name_hash(qname->name, qname->len); | 134 | qname->hash = full_name_hash(qname->name, qname->len); |
135 | 135 | ||
136 | if (dentry->d_op && dentry->d_op->d_hash) | 136 | if (dentry->d_op && dentry->d_op->d_hash) |
137 | if (dentry->d_op->d_hash(dentry, qname) != 0) | 137 | if (dentry->d_op->d_hash(dentry, inode, qname) != 0) |
138 | goto end_advance; | 138 | goto end_advance; |
139 | 139 | ||
140 | newdent = d_lookup(dentry, qname); | 140 | newdent = d_lookup(dentry, qname); |
diff --git a/drivers/staging/smbfs/dir.c b/drivers/staging/smbfs/dir.c index bd63229f43f..5f79799d5d4 100644 --- a/drivers/staging/smbfs/dir.c +++ b/drivers/staging/smbfs/dir.c | |||
@@ -274,7 +274,8 @@ smb_dir_open(struct inode *dir, struct file *file) | |||
274 | * Dentry operations routines | 274 | * Dentry operations routines |
275 | */ | 275 | */ |
276 | static int smb_lookup_validate(struct dentry *, struct nameidata *); | 276 | static int smb_lookup_validate(struct dentry *, struct nameidata *); |
277 | static int smb_hash_dentry(struct dentry *, struct qstr *); | 277 | static int smb_hash_dentry(const struct dentry *, const struct inode *, |
278 | struct qstr *); | ||
278 | static int smb_compare_dentry(const struct dentry *, | 279 | static int smb_compare_dentry(const struct dentry *, |
279 | const struct inode *, | 280 | const struct inode *, |
280 | const struct dentry *, const struct inode *, | 281 | const struct dentry *, const struct inode *, |
@@ -336,7 +337,8 @@ smb_lookup_validate(struct dentry * dentry, struct nameidata *nd) | |||
336 | } | 337 | } |
337 | 338 | ||
338 | static int | 339 | static int |
339 | smb_hash_dentry(struct dentry *dir, struct qstr *this) | 340 | smb_hash_dentry(const struct dentry *dir, const struct inode *inode, |
341 | struct qstr *this) | ||
340 | { | 342 | { |
341 | unsigned long hash; | 343 | unsigned long hash; |
342 | int i; | 344 | int i; |