Re: [f2fs-dev] [PATCH 1/2] f2fs: report ENOENT correct in f2fs_rename
From: Chao Yu
Date: Tue Sep 18 2018 - 21:48:54 EST
On 2018/9/19 1:59, Jaegeuk Kim wrote:
> On 09/18, Chao Yu wrote:
>> On 2018/9/18 10:18, Jaegeuk Kim wrote:
>>> This fixes wrong error report in f2fs_rename.
>>>
>>> Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
>>> ---
>>> fs/f2fs/namei.c | 3 ++-
>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/fs/f2fs/namei.c b/fs/f2fs/namei.c
>>> index 98d3ab7c3ce6..d653be777529 100644
>>> --- a/fs/f2fs/namei.c
>>> +++ b/fs/f2fs/namei.c
>>> @@ -833,7 +833,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;
>>> @@ -854,6 +854,7 @@ static int f2fs_rename(struct inode *old_dir, struct dentry *old_dentry,
>>> if (err)
>>> goto out;
>>>
>>> + err = -ENOENT;
>>
>> I didn't get what's the difference after moving initialization of 'err' here...
>
> One example,
>
> old_entry = f2fs_find_entry(old_dir, &old_dentry->d_name, &old_page);
> if (!old_entry) {
> if (IS_ERR(old_page))
> err = PTR_ERR(old_page);
>
> --> need to return ENOENT instead of 0.
Clear for me now, thanks for your explanation, I just miss that case. ;)
It would be better to add this into commit log.
I agree with Sahitya, we need to cover rename2 as well.
Thanks,
>
> goto out;
> }
>
>>
>> Thanks,
>>
>>> if (new_inode) {
>>> err = dquot_initialize(new_inode);
>>> if (err)
>>>
>
>
> _______________________________________________
> Linux-f2fs-devel mailing list
> Linux-f2fs-devel@xxxxxxxxxxxxxxxxxxxxx
> https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
>
>