Re: [PATCH] fscache: Fix error handling in fscache_begin_operation()

From: Jeff Layton
Date: Fri Mar 15 2024 - 14:34:54 EST


On Fri, 2024-03-15 at 14:48 +0000, David Howells wrote:
>
> Fix fscache_begin_operation() to clear cres->cache_priv on error, otherwise
> fscache_resources_valid() will report it as being valid.
>
> Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
> Reported-by: Marc Dionne <marc.dionne@xxxxxxxxxxxx>
> cc: Jeff Layton <jlayton@xxxxxxxxxx>
> cc: netfs@xxxxxxxxxxxxxxx
> cc: linux-fsdevel@xxxxxxxxxxxxxxx
> ---
> fs/netfs/fscache_io.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/fs/netfs/fscache_io.c b/fs/netfs/fscache_io.c
> index ad57e4412c6d..cfd58ad95e7c 100644
> --- a/fs/netfs/fscache_io.c
> +++ b/fs/netfs/fscache_io.c
> @@ -83,8 +83,10 @@ static int fscache_begin_operation(struct netfs_cache_resources *cres,
> cres->debug_id = cookie->debug_id;
> cres->inval_counter = cookie->inval_counter;
>
> - if (!fscache_begin_cookie_access(cookie, why))
> + if (!fscache_begin_cookie_access(cookie, why)) {
> + cres->cache_priv = NULL;
> return -ENOBUFS;
> + }
>
> again:
> spin_lock(&cookie->lock);
>
>

Reviewed-by: Jeff Layton <jlayton@xxxxxxxxxx>