From: "J. Bruce Fields" <bfields@fieldses.org>
To: Chuck Lever <chuck.lever@oracle.com>
Cc: trond.myklebust@fys.uio.no, linux-nfs@vger.kernel.org
Subject: Re: [PATCH 4/6] NLM: Clean up nsm_monitor() call
Date: Wed, 3 Dec 2008 16:08:43 -0500 [thread overview]
Message-ID: <20081203210843.GP16846@fieldses.org> (raw)
In-Reply-To: <20081201185757.10600.38854.stgit-07a7zB5ZJzbwdl/1UfZZQIVfYA8g3rJ/@public.gmane.org>
On Mon, Dec 01, 2008 at 01:57:58PM -0500, Chuck Lever wrote:
> Clean up: A few minor clean-ups for nsm_monitor():
All looks fine, thanks, however:
>
> o Make sure to return an error if the SM_MON call result is not zero.
I'd prefer to have a change in behavior split out into a separate patch
from pure cleanup.
--b.
>
> o Remove the BUG_ON() -- the code will die anyway if nsm is NULL.
>
> o Use nsm->sm_name instead of host->h_name to be consistent with
> other functions in fs/lockd/mon.c.
>
> o Collect the public declaration of nsm_monitor() in lockd.h with
> other NSM public function declarations (eg. nsm_release).
>
> o Add documenting comments.
>
> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
> ---
>
> fs/lockd/mon.c | 29 ++++++++++++++++++-----------
> include/linux/lockd/lockd.h | 4 ++++
> include/linux/lockd/sm_inter.h | 1 -
> 3 files changed, 22 insertions(+), 12 deletions(-)
>
> diff --git a/fs/lockd/mon.c b/fs/lockd/mon.c
> index a606fbb..78d5f59 100644
> --- a/fs/lockd/mon.c
> +++ b/fs/lockd/mon.c
> @@ -69,18 +69,24 @@ nsm_mon_unmon(struct nsm_handle *nsm, u32 proc, struct nsm_res *res)
> return status;
> }
>
> -/*
> - * Set up monitoring of a remote host
> +/**
> + * nsm_monitor - Notify a peer in case we reboot
> + * @host: pointer to nlm_host of peer to notify
> + *
> + * If this peer is not already monitored, this function sends an
> + * upcall to the local rpc.statd to record the name/address of
> + * the peer to notify in case we reboot.
> + *
> + * Returns zero if the peer is monitored by the local rpc.statd;
> + * otherwise a negative errno value is returned.
> */
> -int
> -nsm_monitor(struct nlm_host *host)
> +int nsm_monitor(const struct nlm_host *host)
> {
> struct nsm_handle *nsm = host->h_nsmhandle;
> - struct nsm_res res;
> - int status;
> + struct nsm_res res;
> + int status;
>
> - dprintk("lockd: nsm_monitor(%s)\n", host->h_name);
> - BUG_ON(nsm == NULL);
> + dprintk("lockd: nsm_monitor(%s)\n", nsm->sm_name);
>
> if (nsm->sm_monitored)
> return 0;
> @@ -92,9 +98,10 @@ nsm_monitor(struct nlm_host *host)
> nsm->sm_mon_name = nsm_use_hostnames ? nsm->sm_name : nsm->sm_addrbuf;
>
> status = nsm_mon_unmon(nsm, SM_MON, &res);
> -
> - if (status < 0 || res.status != 0)
> - printk(KERN_NOTICE "lockd: cannot monitor %s\n", host->h_name);
> + if (res.status != 0)
> + status = -EIO;
> + if (status < 0)
> + printk(KERN_NOTICE "lockd: cannot monitor %s\n", nsm->sm_name);
> else
> nsm->sm_monitored = 1;
> return status;
> diff --git a/include/linux/lockd/lockd.h b/include/linux/lockd/lockd.h
> index de9ea7b..4ca6f39 100644
> --- a/include/linux/lockd/lockd.h
> +++ b/include/linux/lockd/lockd.h
> @@ -233,6 +233,10 @@ extern void nlm_host_rebooted(const struct sockaddr_in *, const char *,
> unsigned int, u32);
> void nsm_release(struct nsm_handle *);
>
> +/*
> + * Host monitoring
> + */
> +int nsm_monitor(const struct nlm_host *host);
>
> /*
> * This is used in garbage collection and resource reclaim
> diff --git a/include/linux/lockd/sm_inter.h b/include/linux/lockd/sm_inter.h
> index 5a5448b..546b610 100644
> --- a/include/linux/lockd/sm_inter.h
> +++ b/include/linux/lockd/sm_inter.h
> @@ -41,7 +41,6 @@ struct nsm_res {
> u32 state;
> };
>
> -int nsm_monitor(struct nlm_host *);
> int nsm_unmonitor(struct nlm_host *);
> extern int nsm_local_state;
>
>
next prev parent reply other threads:[~2008-12-03 21:08 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-01 18:57 [PATCH 0/6] First set of patches for 2.6.29 Chuck Lever
[not found] ` <20081201185108.10600.21700.stgit-07a7zB5ZJzbwdl/1UfZZQIVfYA8g3rJ/@public.gmane.org>
2008-12-01 18:57 ` [PATCH 1/6] NLM: Remove address eye-catcher buffers from nlm_host Chuck Lever
[not found] ` <20081201185734.10600.88841.stgit-07a7zB5ZJzbwdl/1UfZZQIVfYA8g3rJ/@public.gmane.org>
2008-12-03 19:03 ` J. Bruce Fields
2008-12-03 19:10 ` Chuck Lever
2008-12-01 18:57 ` [PATCH 2/6] NLM: Support IPv6 scope IDs in nlm_display_address() Chuck Lever
[not found] ` <20081201185741.10600.7375.stgit-07a7zB5ZJzbwdl/1UfZZQIVfYA8g3rJ/@public.gmane.org>
2008-12-03 19:34 ` J. Bruce Fields
2008-12-03 19:46 ` J. Bruce Fields
2008-12-01 18:57 ` [PATCH 3/6] NSM: Support IPv6 version of mon_name Chuck Lever
[not found] ` <20081201185749.10600.38468.stgit-07a7zB5ZJzbwdl/1UfZZQIVfYA8g3rJ/@public.gmane.org>
2008-12-03 21:01 ` J. Bruce Fields
2008-12-03 21:19 ` Chuck Lever
2008-12-03 21:24 ` Chuck Lever
2008-12-01 18:57 ` [PATCH 4/6] NLM: Clean up nsm_monitor() call Chuck Lever
[not found] ` <20081201185757.10600.38854.stgit-07a7zB5ZJzbwdl/1UfZZQIVfYA8g3rJ/@public.gmane.org>
2008-12-03 21:08 ` J. Bruce Fields [this message]
2008-12-03 21:20 ` Chuck Lever
2008-12-01 18:58 ` [PATCH 5/6] " Chuck Lever
[not found] ` <20081201185805.10600.23630.stgit-07a7zB5ZJzbwdl/1UfZZQIVfYA8g3rJ/@public.gmane.org>
2008-12-03 21:28 ` J. Bruce Fields
2008-12-01 18:58 ` [PATCH 6/6] NSM: Serialize SM_MON and SM_UNMON upcalls Chuck Lever
[not found] ` <20081201185812.10600.92501.stgit-07a7zB5ZJzbwdl/1UfZZQIVfYA8g3rJ/@public.gmane.org>
2008-12-03 21:41 ` J. Bruce Fields
2008-12-04 0:38 ` Chuck Lever
2008-12-04 3:55 ` 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=20081203210843.GP16846@fieldses.org \
--to=bfields@fieldses.org \
--cc=chuck.lever@oracle.com \
--cc=linux-nfs@vger.kernel.org \
--cc=trond.myklebust@fys.uio.no \
/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.