From: Jeff Layton <jlayton@redhat.com>
To: Chuck Lever <chuck.lever@oracle.com>
Cc: steved@redhat.com, linux-nfs@vger.kernel.org
Subject: Re: [PATCH 2/2] sm-notify: Send fully-qualified and unqualified mon_names
Date: Mon, 15 Mar 2010 18:30:34 -0400 [thread overview]
Message-ID: <20100315183034.71fbfd2b@tlielax.poochiereds.net> (raw)
In-Reply-To: <20100315175145.2586.1215.stgit-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
On Mon, 15 Mar 2010 13:51:45 -0400
Chuck Lever <chuck.lever@oracle.com> wrote:
> During any file locking interaction between an NFS client and server,
> the client tells the server what hostname it will use as the mon_name
> argument of the SM_NOTIFY request sent by the client when it reboots.
> This is the "caller_name" argument of an NLMPROC_LOCK request.
>
> The server, however, never tells the client what mon_name argument
> it will use when sending an SM_NOTIFY request. In order to recognize
> the server, clients usually guess what mon_name the server might
> send, by using the server hostname provided by the user on the mount
> command line.
>
> Frequently, the user provides an unqualified server name on the mount
> command. The server might then call the client back with a fully
> qualified domain name, which might not match in some cases.
>
> Solaris, and perhaps other implementations, attempt to mitigate this
> problem by sending two SM_NOTIFY requests to each peer: one with an
> unqualified mon_name argument, and one with a fully qualified mon_name.
>
> Implement such a scheme for sm-notify.
>
> Since my_name is almost always the fully-qualified hostname associated
> with the local system, just wiping the left-most '.' in the my_name
> argument and sending another SM_NOTIFY is nearly always sufficient.
>
> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Looks reasonable, and we tested a similar or identical patch prior to
Connectathon and during it.
Reviewed-by: Jeff Layton <jlayton@redhat.com>
> ---
>
> utils/statd/sm-notify.c | 21 +++++++++++++++++----
> 1 files changed, 17 insertions(+), 4 deletions(-)
>
> diff --git a/utils/statd/sm-notify.c b/utils/statd/sm-notify.c
> index 2d14668..437e37a 100644
> --- a/utils/statd/sm-notify.c
> +++ b/utils/statd/sm-notify.c
> @@ -634,15 +634,28 @@ recv_rpcbind_reply(struct sockaddr *sap, struct nsm_host *host, XDR *xdr)
> }
>
> /*
> - * Successful NOTIFY call. Server returns void, so nothing
> - * we need to do here.
> + * Successful NOTIFY call. Server returns void.
> + *
> + * Try sending another SM_NOTIFY with an unqualified "my_name"
> + * argument. Reuse the port number. If "my_name" is already
> + * unqualified, we're done.
> */
> static void
> recv_notify_reply(struct nsm_host *host)
> {
> - xlog(D_GENERAL, "Host %s notified successfully", host->name);
> + char *dot = strchr(host->my_name, '.');
>
> - smn_forget_host(host);
> + if (dot != NULL) {
> + *dot = '\0';
> + host->send_next = time(NULL);
> + host->xid = 0;
> + if (host->timeout >= NSM_MAX_TIMEOUT / 4)
> + host->timeout = NSM_MAX_TIMEOUT / 4;
> + insert_host(host);
> + } else {
> + xlog(D_GENERAL, "Host %s notified successfully", host->name);
> + smn_forget_host(host);
> + }
> }
>
> /*
>
next prev parent reply other threads:[~2010-03-15 22:30 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-15 17:51 [PATCH 0/2] Two short fixes for sm-notify Chuck Lever
[not found] ` <20100315174453.2586.40876.stgit-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2010-03-15 17:51 ` [PATCH 1/2] sm-notify: Use my_name when sending SM_NOTIFY requests Chuck Lever
[not found] ` <20100315175137.2586.71894.stgit-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2010-03-15 22:25 ` Jeff Layton
[not found] ` <20100315182535.2aacdadb-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2010-03-16 4:12 ` Chuck Lever
2010-03-16 11:20 ` Jeff Layton
2010-03-15 17:51 ` [PATCH 2/2] sm-notify: Send fully-qualified and unqualified mon_names Chuck Lever
[not found] ` <20100315175145.2586.1215.stgit-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2010-03-15 22:30 ` Jeff Layton [this message]
2010-03-17 10:36 ` Steve Dickson
[not found] ` <4BA0B0A4.6020705-AfCzQyP5zfLQT0dZR+AlfA@public.gmane.org>
2010-03-17 14:39 ` Chuck Lever
2010-03-19 20:03 ` Steve Dickson
2010-03-17 10:53 ` [PATCH 0/2] Two short fixes for sm-notify Steve Dickson
[not found] ` <4BA0B48E.8030504-AfCzQyP5zfLQT0dZR+AlfA@public.gmane.org>
2010-03-17 14:29 ` Chuck Lever
2010-03-19 20:05 ` Steve Dickson
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=20100315183034.71fbfd2b@tlielax.poochiereds.net \
--to=jlayton@redhat.com \
--cc=chuck.lever@oracle.com \
--cc=linux-nfs@vger.kernel.org \
--cc=steved@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox