f2fs: report ENOENT correctly in f2fs_rename
authorJaegeuk Kim <jaegeuk@kernel.org>
Mon, 17 Sep 2018 20:25:04 +0000 (13:25 -0700)
committerJaegeuk Kim <jaegeuk@kernel.org>
Wed, 26 Sep 2018 19:38:11 +0000 (12:38 -0700)
This fixes wrong error report in f2fs_rename.

Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/namei.c

index 9ad451a..ded185b 100644 (file)
@@ -820,7 +820,7 @@ static int f2fs_rename(struct inode *old_dir, struct dentry *old_dentry,
        struct f2fs_dir_entry *old_entry;
        struct f2fs_dir_entry *new_entry;
        bool is_old_inline = f2fs_has_inline_dentry(old_dir);
-       int err = -ENOENT;
+       int err;
 
        if (unlikely(f2fs_cp_error(sbi)))
                return -EIO;
@@ -844,6 +844,7 @@ static int f2fs_rename(struct inode *old_dir, struct dentry *old_dentry,
                        goto out;
        }
 
+       err = -ENOENT;
        old_entry = f2fs_find_entry(old_dir, &old_dentry->d_name, &old_page);
        if (!old_entry) {
                if (IS_ERR(old_page))
@@ -1009,7 +1010,7 @@ static int f2fs_cross_rename(struct inode *old_dir, struct dentry *old_dentry,
        struct f2fs_dir_entry *old_dir_entry = NULL, *new_dir_entry = NULL;
        struct f2fs_dir_entry *old_entry, *new_entry;
        int old_nlink = 0, new_nlink = 0;
-       int err = -ENOENT;
+       int err;
 
        if (unlikely(f2fs_cp_error(sbi)))
                return -EIO;
@@ -1030,6 +1031,7 @@ static int f2fs_cross_rename(struct inode *old_dir, struct dentry *old_dentry,
        if (err)
                goto out;
 
+       err = -ENOENT;
        old_entry = f2fs_find_entry(old_dir, &old_dentry->d_name, &old_page);
        if (!old_entry) {
                if (IS_ERR(old_page))