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.

> @@ -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.

> @@ -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.

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

Reply via email to