Commit 3e19886e authored by Jaegeuk Kim's avatar Jaegeuk Kim

f2fs: report error for f2fs_parent_dir

If there is no dentry, we can report its error correctly.
Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
parent 8be0fea9
...@@ -662,10 +662,11 @@ static int f2fs_rename(struct inode *old_dir, struct dentry *old_dentry, ...@@ -662,10 +662,11 @@ static int f2fs_rename(struct inode *old_dir, struct dentry *old_dentry,
goto out; goto out;
if (S_ISDIR(old_inode->i_mode)) { if (S_ISDIR(old_inode->i_mode)) {
err = -EIO;
old_dir_entry = f2fs_parent_dir(old_inode, &old_dir_page); old_dir_entry = f2fs_parent_dir(old_inode, &old_dir_page);
if (!old_dir_entry) if (!old_dir_entry) {
err = PTR_ERR(old_dir_page);
goto out_old; goto out_old;
}
} }
if (flags & RENAME_WHITEOUT) { if (flags & RENAME_WHITEOUT) {
...@@ -838,19 +839,21 @@ static int f2fs_cross_rename(struct inode *old_dir, struct dentry *old_dentry, ...@@ -838,19 +839,21 @@ static int f2fs_cross_rename(struct inode *old_dir, struct dentry *old_dentry,
/* prepare for updating ".." directory entry info later */ /* prepare for updating ".." directory entry info later */
if (old_dir != new_dir) { if (old_dir != new_dir) {
if (S_ISDIR(old_inode->i_mode)) { if (S_ISDIR(old_inode->i_mode)) {
err = -EIO;
old_dir_entry = f2fs_parent_dir(old_inode, old_dir_entry = f2fs_parent_dir(old_inode,
&old_dir_page); &old_dir_page);
if (!old_dir_entry) if (!old_dir_entry) {
err = PTR_ERR(old_dir_page);
goto out_new; goto out_new;
}
} }
if (S_ISDIR(new_inode->i_mode)) { if (S_ISDIR(new_inode->i_mode)) {
err = -EIO;
new_dir_entry = f2fs_parent_dir(new_inode, new_dir_entry = f2fs_parent_dir(new_inode,
&new_dir_page); &new_dir_page);
if (!new_dir_entry) if (!new_dir_entry) {
err = PTR_ERR(new_dir_page);
goto out_old_dir; goto out_old_dir;
}
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment