diff options
Diffstat (limited to 'fs/logfs')
-rw-r--r-- | fs/logfs/dir.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/logfs/dir.c b/fs/logfs/dir.c index 9ed89d1663f8..f34c9cde9e94 100644 --- a/fs/logfs/dir.c +++ b/fs/logfs/dir.c | |||
@@ -273,6 +273,8 @@ static int logfs_rmdir(struct inode *dir, struct dentry *dentry) | |||
273 | { | 273 | { |
274 | struct inode *inode = dentry->d_inode; | 274 | struct inode *inode = dentry->d_inode; |
275 | 275 | ||
276 | dentry_unhash(dentry); | ||
277 | |||
276 | if (!logfs_empty_dir(inode)) | 278 | if (!logfs_empty_dir(inode)) |
277 | return -ENOTEMPTY; | 279 | return -ENOTEMPTY; |
278 | 280 | ||
@@ -622,6 +624,9 @@ static int logfs_rename_cross(struct inode *old_dir, struct dentry *old_dentry, | |||
622 | loff_t pos; | 624 | loff_t pos; |
623 | int err; | 625 | int err; |
624 | 626 | ||
627 | if (new_dentry->d_inode && S_ISDIR(new_dentry->d_inode->i_mode)) | ||
628 | dentry_unhash(new_dentry); | ||
629 | |||
625 | /* 1. locate source dd */ | 630 | /* 1. locate source dd */ |
626 | err = logfs_get_dd(old_dir, old_dentry, &dd, &pos); | 631 | err = logfs_get_dd(old_dir, old_dentry, &dd, &pos); |
627 | if (err) | 632 | if (err) |