diff options
| author | Evgeniy Polyakov <zbr@ioremap.net> | 2009-03-27 15:04:18 +0300 | 
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-04-17 11:06:27 -0700 | 
| commit | 288a9a8955cd28bf6a0f48ec821cf9028e96081b (patch) | |
| tree | 67d982fde2c729e00c4d17f8fe4381b143e265f4 /drivers | |
| parent | f7ed550b3ecab4a14f78019ff3e8899add607f92 (diff) | |
| download | linux-288a9a8955cd28bf6a0f48ec821cf9028e96081b.tar.bz2 | |
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>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/staging/pohmelfs/net.c | 16 | 
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: |