diff options
| -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 c9b8540c1ef..93a5921c36f 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) | |||
| 450 | if (err != -EEXIST) | 450 | if (err != -EEXIST) |
| 451 | goto err_out_put; | 451 | goto err_out_put; |
| 452 | } else { | 452 | } else { |
| 453 | struct dentry *dentry, *alias, *pd; | ||
| 454 | |||
| 453 | set_bit(NETFS_INODE_REMOTE_SYNCED, &npi->state); | 455 | set_bit(NETFS_INODE_REMOTE_SYNCED, &npi->state); |
| 454 | clear_bit(NETFS_INODE_OWNED, &npi->state); | 456 | clear_bit(NETFS_INODE_OWNED, &npi->state); |
| 457 | |||
| 458 | pd = d_find_alias(&parent->vfs_inode); | ||
| 459 | if (pd) { | ||
| 460 | str.hash = full_name_hash(str.name, str.len); | ||
| 461 | dentry = d_alloc(pd, &str); | ||
| 462 | if (dentry) { | ||
| 463 | alias = d_materialise_unique(dentry, &npi->vfs_inode); | ||
| 464 | if (alias) | ||
| 465 | dput(dentry); | ||
| 466 | } | ||
| 467 | |||
| 468 | dput(dentry); | ||
| 469 | dput(pd); | ||
| 470 | } | ||
| 455 | } | 471 | } |
| 456 | } | 472 | } |
| 457 | out: | 473 | out: |
