aboutsummaryrefslogtreecommitdiffstats
path: root/fs/9p/vfs_dentry.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/9p/vfs_dentry.c')
-rw-r--r--fs/9p/vfs_dentry.c17
1 files changed, 4 insertions, 13 deletions
diff --git a/fs/9p/vfs_dentry.c b/fs/9p/vfs_dentry.c
index 9ad68628522c..f039b104a98e 100644
--- a/fs/9p/vfs_dentry.c
+++ b/fs/9p/vfs_dentry.c
@@ -83,21 +83,12 @@ static int v9fs_cached_dentry_delete(const struct dentry *dentry)
83 83
84static void v9fs_dentry_release(struct dentry *dentry) 84static void v9fs_dentry_release(struct dentry *dentry)
85{ 85{
86 struct v9fs_dentry *dent; 86 struct hlist_node *p, *n;
87 struct p9_fid *temp, *current_fid;
88
89 p9_debug(P9_DEBUG_VFS, " dentry: %s (%p)\n", 87 p9_debug(P9_DEBUG_VFS, " dentry: %s (%p)\n",
90 dentry->d_name.name, dentry); 88 dentry->d_name.name, dentry);
91 dent = dentry->d_fsdata; 89 hlist_for_each_safe(p, n, (struct hlist_head *)&dentry->d_fsdata)
92 if (dent) { 90 p9_client_clunk(hlist_entry(p, struct p9_fid, dlist));
93 list_for_each_entry_safe(current_fid, temp, &dent->fidlist, 91 dentry->d_fsdata = NULL;
94 dlist) {
95 p9_client_clunk(current_fid);
96 }
97
98 kfree(dent);
99 dentry->d_fsdata = NULL;
100 }
101} 92}
102 93
103static int v9fs_lookup_revalidate(struct dentry *dentry, unsigned int flags) 94static int v9fs_lookup_revalidate(struct dentry *dentry, unsigned int flags)