diff options
author | Nick Piggin <npiggin@kernel.dk> | 2011-01-07 01:49:23 -0500 |
---|---|---|
committer | Nick Piggin <npiggin@kernel.dk> | 2011-01-07 01:50:18 -0500 |
commit | fe15ce446beb3a33583af81ffe6c9d01a75314ed (patch) | |
tree | bc8af66b6dd2d0f21a2a3f48a19975ae2cdbae4e /fs/afs | |
parent | 5eef7fa905c814826f518aca2d414ca77508ce30 (diff) |
fs: change d_delete semantics
Change d_delete from a dentry deletion notification to a dentry caching
advise, more like ->drop_inode. Require it to be constant and idempotent,
and not take d_lock. This is how all existing filesystems use the callback
anyway.
This makes fine grained dentry locking of dput and dentry lru scanning
much simpler.
Signed-off-by: Nick Piggin <npiggin@kernel.dk>
Diffstat (limited to 'fs/afs')
-rw-r--r-- | fs/afs/dir.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/afs/dir.c b/fs/afs/dir.c index 5439e1bc9a86..2c18cde27000 100644 --- a/fs/afs/dir.c +++ b/fs/afs/dir.c | |||
@@ -23,7 +23,7 @@ static struct dentry *afs_lookup(struct inode *dir, struct dentry *dentry, | |||
23 | static int afs_dir_open(struct inode *inode, struct file *file); | 23 | static int afs_dir_open(struct inode *inode, struct file *file); |
24 | static int afs_readdir(struct file *file, void *dirent, filldir_t filldir); | 24 | static int afs_readdir(struct file *file, void *dirent, filldir_t filldir); |
25 | static int afs_d_revalidate(struct dentry *dentry, struct nameidata *nd); | 25 | static int afs_d_revalidate(struct dentry *dentry, struct nameidata *nd); |
26 | static int afs_d_delete(struct dentry *dentry); | 26 | static int afs_d_delete(const struct dentry *dentry); |
27 | static void afs_d_release(struct dentry *dentry); | 27 | static void afs_d_release(struct dentry *dentry); |
28 | static int afs_lookup_filldir(void *_cookie, const char *name, int nlen, | 28 | static int afs_lookup_filldir(void *_cookie, const char *name, int nlen, |
29 | loff_t fpos, u64 ino, unsigned dtype); | 29 | loff_t fpos, u64 ino, unsigned dtype); |
@@ -730,7 +730,7 @@ out_bad: | |||
730 | * - called from dput() when d_count is going to 0. | 730 | * - called from dput() when d_count is going to 0. |
731 | * - return 1 to request dentry be unhashed, 0 otherwise | 731 | * - return 1 to request dentry be unhashed, 0 otherwise |
732 | */ | 732 | */ |
733 | static int afs_d_delete(struct dentry *dentry) | 733 | static int afs_d_delete(const struct dentry *dentry) |
734 | { | 734 | { |
735 | _enter("%s", dentry->d_name.name); | 735 | _enter("%s", dentry->d_name.name); |
736 | 736 | ||