On 3/30/22 4:51 PM, David Howells wrote:
> Jeffle Xu <jeffl...@linux.alibaba.com> wrote:
> 
>> Subject: [PATCH] cachefiles: revert inode in use in error path
> 
> Can you say "Unmark" rather than "revert"?  I would tend to reserve the word
> "revert" for when I'm reverting a commit.

OK.

> 
>> @@ -494,15 +502,20 @@ struct file *cachefiles_create_tmpfile(struct 
>> cachefiles_object *object)
>> ...
>> +out_unuse:
>> +    cachefiles_do_unmark_inode_in_use(object, path.dentry);
> 
> It shouldn't matter here.  We're dealing with a tmpfile, so we shouldn't ever
> see it again.  If we do, it's a bug in the backing filesystem.  OTOH, I
> suppose it makes sense to clear it anyway.

Right. Only cachefiles_open_file() will trigger "Inode already in use"
warning.

> 
>> @@ -574,8 +587,16 @@ static bool cachefiles_open_file(struct 
>> cachefiles_object *object,
>>      _debug("file -> %pd positive", dentry);
>>  
>>      ret = cachefiles_check_auxdata(object, file);
>> -    if (ret < 0)
>> -            goto check_failed;
>> +    if (ret < 0) {
>> +            fscache_cookie_lookup_negative(object->cookie);
>> +            cachefiles_unmark_inode_in_use(object, file);
>> +            fput(file);
>> +            dput(dentry);
>> +
>> +            if (ret == -ESTALE)
>> +                    return cachefiles_create_file(object);
>> +            return false;
>> +    }
>>  
>>      object->file = file;
>>  
>> @@ -587,17 +608,10 @@ static bool cachefiles_open_file(struct 
>> cachefiles_object *object,
>>      dput(dentry);
>>      return true;
>>  
>> -check_failed:
>> -    fscache_cookie_lookup_negative(object->cookie);
>> -    cachefiles_unmark_inode_in_use(object, file);
>> -    if (ret == -ESTALE) {
>> -            fput(file);
>> -            dput(dentry);
>> -            return cachefiles_create_file(object);
>> -    }
>>  error_fput:
>>      fput(file);
>>  error:
>> +    cachefiles_do_unmark_inode_in_use(object, dentry);
>>      dput(dentry);
>>      return false;
>>  }
> 
> Okay, you are correct here, but could you leave the "check_failed:" label
> where it is and make your rearrangements there?  That way the error handling
> is outside the main path through the function.

OK.

-- 
Thanks,
Jeffle

--
Linux-cachefs mailing list
Linux-cachefs@redhat.com
https://listman.redhat.com/mailman/listinfo/linux-cachefs

Reply via email to