static void v9fs_dentry_release(struct dentry *dentry)
{
- struct v9fs_dentry *dent;
+ struct hlist_node *p, *n;
p9_debug(P9_DEBUG_VFS, " dentry: %s (%p)\n",
dentry->d_name.name, dentry);
- dent = dentry->d_fsdata;
- if (dent) {
- struct hlist_node *p, *n;
- hlist_for_each_safe(p, n, &dent->fidlist)
- p9_client_clunk(hlist_entry(p, struct p9_fid, dlist));
-
- kfree(dent);
- dentry->d_fsdata = NULL;
- }
+ hlist_for_each_safe(p, n, (struct hlist_head *)&dentry->d_fsdata)
+ p9_client_clunk(hlist_entry(p, struct p9_fid, dlist));
+ dentry->d_fsdata = NULL;
}
static int v9fs_lookup_revalidate(struct dentry *dentry, unsigned int flags)