From: "J. Bruce Fields" <bfields@fieldses.org>
To: Chuck Lever <chuck.lever@oracle.com>
Cc: trond.myklebust@netapp.com, linux-nfs@vger.kernel.org
Subject: Re: [PATCH] NLM: Revert parts of commit 24e36663
Date: Thu, 25 Sep 2008 17:38:31 -0400 [thread overview]
Message-ID: <20080925213831.GF14349@fieldses.org> (raw)
In-Reply-To: <20080924184732.4078.83334.stgit-lQeC5l55kZ7wdl/1UfZZQIVfYA8g3rJ/@public.gmane.org>
On Wed, Sep 24, 2008 at 02:50:36PM -0400, Chuck Lever wrote:
> statd and some servers always need lockd to listen on UDP, so always
> start both lockd listener sockets.
>
> This probably leaks an svc_serv if the TCP listener can't be created,
> but it will do for now.
>
> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
> ---
>
> I currently have this workaround lurking in my git repo. Is there some kind
> of fix for this issue planned for 2.6.28?
Not that I know of.
> This is only a reminder, not a suggested patch.
Any chance you could generate a patch?
--b.
>
> fs/lockd/svc.c | 31 +++++++++++++------------------
> 1 files changed, 13 insertions(+), 18 deletions(-)
>
> diff --git a/fs/lockd/svc.c b/fs/lockd/svc.c
> index a7b604c..36b6d03 100644
> --- a/fs/lockd/svc.c
> +++ b/fs/lockd/svc.c
> @@ -213,25 +213,23 @@ lockd(void *vrqstp)
> }
>
> /*
> - * Make any sockets that are needed but not present.
> - * If nlm_udpport or nlm_tcpport were set as module
> - * options, make those sockets unconditionally
> + * Create UDP and TCP listeners for lockd. Even if we only
> + * have TCP NFS mounts and TCP NFSDs, some services (such
> + * as rpc.statd) still require UDP.
> */
> -static int make_socks(struct svc_serv *serv, const unsigned short proto)
> +static int make_socks(struct svc_serv *serv)
> {
> static int warned;
> struct svc_xprt *xprt;
> int err = 0;
>
> - if (proto == IPPROTO_UDP || nlm_udpport) {
> - xprt = svc_find_xprt(serv, "udp", 0, 0);
> - if (!xprt)
> - err = svc_create_xprt(serv, "udp", nlm_udpport,
> - SVC_SOCK_DEFAULTS);
> - else
> - svc_xprt_put(xprt);
> - }
> - if (err >= 0 && (proto == IPPROTO_TCP || nlm_tcpport)) {
> + xprt = svc_find_xprt(serv, "udp", 0, 0);
> + if (!xprt)
> + err = svc_create_xprt(serv, "udp", nlm_udpport,
> + SVC_SOCK_DEFAULTS);
> + else
> + svc_xprt_put(xprt);
> + if (err >= 0) {
> xprt = svc_find_xprt(serv, "tcp", 0, 0);
> if (!xprt)
> err = svc_create_xprt(serv, "tcp", nlm_tcpport,
> @@ -260,11 +258,8 @@ int lockd_up(const unsigned short proto)
> /*
> * Check whether we're already up and running.
> */
> - if (nlmsvc_rqst) {
> - if (proto)
> - error = make_socks(nlmsvc_rqst->rq_server, proto);
> + if (nlmsvc_rqst)
> goto out;
> - }
>
> /*
> * Sanity check: if there's no pid,
> @@ -281,7 +276,7 @@ int lockd_up(const unsigned short proto)
> goto out;
> }
>
> - if ((error = make_socks(serv, proto)) < 0)
> + if ((error = make_socks(serv)) < 0)
> goto destroy_and_out;
>
> /*
>
next prev parent reply other threads:[~2008-09-25 21:38 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-24 18:50 [PATCH] NLM: Revert parts of commit 24e36663 Chuck Lever
[not found] ` <20080924184732.4078.83334.stgit-lQeC5l55kZ7wdl/1UfZZQIVfYA8g3rJ/@public.gmane.org>
2008-09-24 18:54 ` Trond Myklebust
2008-09-26 15:50 ` Talpey, Thomas
2008-09-25 21:38 ` J. Bruce Fields [this message]
2008-09-26 17:53 ` Chuck Lever
2008-09-26 18:45 ` J. Bruce Fields
2008-09-26 18:49 ` Trond Myklebust
2008-09-26 18:51 ` J. Bruce Fields
2008-09-26 19:04 ` Chuck Lever
2008-09-26 19:11 ` Trond Myklebust
2008-09-26 19:44 ` J. Bruce Fields
2008-09-26 19:54 ` Chuck Lever
2008-09-26 19:57 ` Trond Myklebust
2008-09-26 21:11 ` Chuck Lever
2008-09-26 22:22 ` Trond Myklebust
2008-09-26 23:30 ` J. Bruce Fields
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=20080925213831.GF14349@fieldses.org \
--to=bfields@fieldses.org \
--cc=chuck.lever@oracle.com \
--cc=linux-nfs@vger.kernel.org \
--cc=trond.myklebust@netapp.com \
/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.