diff options
Diffstat (limited to 'fs/hostfs/hostfs_kern.c')
| -rw-r--r-- | fs/hostfs/hostfs_kern.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/hostfs/hostfs_kern.c b/fs/hostfs/hostfs_kern.c index 2638c834ed2..e6816b9e690 100644 --- a/fs/hostfs/hostfs_kern.c +++ b/fs/hostfs/hostfs_kern.c | |||
| @@ -683,6 +683,8 @@ int hostfs_rmdir(struct inode *ino, struct dentry *dentry) | |||
| 683 | char *file; | 683 | char *file; |
| 684 | int err; | 684 | int err; |
| 685 | 685 | ||
| 686 | dentry_unhash(dentry); | ||
| 687 | |||
| 686 | if ((file = dentry_name(dentry)) == NULL) | 688 | if ((file = dentry_name(dentry)) == NULL) |
| 687 | return -ENOMEM; | 689 | return -ENOMEM; |
| 688 | err = do_rmdir(file); | 690 | err = do_rmdir(file); |
| @@ -736,6 +738,9 @@ int hostfs_rename(struct inode *from_ino, struct dentry *from, | |||
| 736 | char *from_name, *to_name; | 738 | char *from_name, *to_name; |
| 737 | int err; | 739 | int err; |
| 738 | 740 | ||
| 741 | if (to->d_inode && S_ISDIR(to->d_inode->i_mode)) | ||
| 742 | dentry_unhash(to); | ||
| 743 | |||
| 739 | if ((from_name = dentry_name(from)) == NULL) | 744 | if ((from_name = dentry_name(from)) == NULL) |
| 740 | return -ENOMEM; | 745 | return -ENOMEM; |
| 741 | if ((to_name = dentry_name(to)) == NULL) { | 746 | if ((to_name = dentry_name(to)) == NULL) { |
