From: Jeff Layton <jlayton@kernel.org>
To: Andrew Elble <aweits@rit.edu>,
linux-nfs@vger.kernel.org, bfields@fieldses.org
Subject: Re: [PATCH] nfsd: correctly decrement odstate refcount in error path
Date: Fri, 19 Oct 2018 11:19:21 -0400 [thread overview]
Message-ID: <19ea8453e4110fa957a6f0c290bea76456e7c85a.camel@kernel.org> (raw)
In-Reply-To: <20181005133208.72315-1-aweits@rit.edu>
On Fri, 2018-10-05 at 09:32 -0400, Andrew Elble wrote:
> alloc_init_deleg() both allocates an nfs4_delegation, and
> bumps the refcount on odstate. So after this point, we need to
> put_clnt_odstate() and nfs4_put_stid() to not leave the odstate
> refcount inappropriately bumped.
>
> Signed-off-by: Andrew Elble <aweits@rit.edu>
> ---
> fs/nfsd/nfs4state.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
> index 7484f04e09a2..9067bff1233d 100644
> --- a/fs/nfsd/nfs4state.c
> +++ b/fs/nfsd/nfs4state.c
> @@ -4365,7 +4365,7 @@ static struct file_lock *nfs4_alloc_init_lease(struct nfs4_delegation *dp,
>
> fl = nfs4_alloc_init_lease(dp, NFS4_OPEN_DELEGATE_READ);
> if (!fl)
> - goto out_stid;
> + goto out_clnt_odstate;
>
> status = vfs_setlease(fp->fi_deleg_file, fl->fl_type, &fl, NULL);
> if (fl)
> @@ -4400,7 +4400,6 @@ static struct file_lock *nfs4_alloc_init_lease(struct nfs4_delegation *dp,
> vfs_setlease(fp->fi_deleg_file, F_UNLCK, NULL, (void **)&dp);
> out_clnt_odstate:
> put_clnt_odstate(dp->dl_clnt_odstate);
> -out_stid:
> nfs4_put_stid(&dp->dl_stid);
> out_delegees:
> put_deleg_file(fp);
Nice catch.
Reviewed-by: Jeff Layton <jlayton@kernel.org>
prev parent reply other threads:[~2018-10-19 23:25 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-05 13:32 [PATCH] nfsd: correctly decrement odstate refcount in error path Andrew Elble
2018-10-19 15:16 ` J. Bruce Fields
2018-10-19 15:19 ` Jeff Layton [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=19ea8453e4110fa957a6f0c290bea76456e7c85a.camel@kernel.org \
--to=jlayton@kernel.org \
--cc=aweits@rit.edu \
--cc=bfields@fieldses.org \
--cc=linux-nfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.