summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvgeniy Polyakov2009-03-27 13:04:18 +0100
committerGreg Kroah-Hartman2009-04-17 20:06:27 +0200
commit288a9a8955cd28bf6a0f48ec821cf9028e96081b (patch)
tree67d982fde2c729e00c4d17f8fe4381b143e265f4
parentRevert Staging: SLICOSS: use gfp_kernel where possible (diff)
downloadkernel-qcow2-linux-288a9a8955cd28bf6a0f48ec821cf9028e96081b.tar.gz
kernel-qcow2-linux-288a9a8955cd28bf6a0f48ec821cf9028e96081b.tar.xz
kernel-qcow2-linux-288a9a8955cd28bf6a0f48ec821cf9028e96081b.zip
Staging: pohmelfs: Populate dentry cache when receiving the new readdir entry.
Signed-off-by: Evgeniy Polyakov <zbr@ioremap.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/staging/pohmelfs/net.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/staging/pohmelfs/net.c b/drivers/staging/pohmelfs/net.c
index c9b8540c1efe..93a5921c36f4 100644
--- a/drivers/staging/pohmelfs/net.c
+++ b/drivers/staging/pohmelfs/net.c
@@ -450,8 +450,24 @@ static int pohmelfs_readdir_response(struct netfs_state *st)
if (err != -EEXIST)
goto err_out_put;
} else {
+ struct dentry *dentry, *alias, *pd;
+
set_bit(NETFS_INODE_REMOTE_SYNCED, &npi->state);
clear_bit(NETFS_INODE_OWNED, &npi->state);
+
+ pd = d_find_alias(&parent->vfs_inode);
+ if (pd) {
+ str.hash = full_name_hash(str.name, str.len);
+ dentry = d_alloc(pd, &str);
+ if (dentry) {
+ alias = d_materialise_unique(dentry, &npi->vfs_inode);
+ if (alias)
+ dput(dentry);
+ }
+
+ dput(dentry);
+ dput(pd);
+ }
}
}
out: