All of lore.kernel.org
 help / color / mirror / Atom feed
From: "J. Bruce Fields" <bfields@fieldses.org>
To: Stanislav Kinsbursky <skinsbursky@parallels.com>
Cc: Trond.Myklebust@netapp.com, linux-nfs@vger.kernel.org,
	xemul@parallels.com, neilb@suse.de, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org, jbottomley@parallels.com,
	davem@davemloft.net, devel@openvz.org
Subject: Re: [PATCH 1/2] SUNRPC: register RPC stats /proc entries in passed network namespace context
Date: Tue, 6 Dec 2011 16:33:22 -0500	[thread overview]
Message-ID: <20111206213322.GE12640@fieldses.org> (raw)
In-Reply-To: <20111206124240.15702.61866.stgit@localhost6.localdomain6>

On Tue, Dec 06, 2011 at 04:42:40PM +0300, Stanislav Kinsbursky wrote:
> This patch makes it possible to create NFS program entry ("/proc/net/rpc/nfs")
> in passed network namespace context instead of hard-coded "init_net".

Looks straightforward to me.

	Acked-by: J. Bruce Fields <bfields@redhat.com>

--b.

> 
> Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
> 
> ---
>  fs/nfs/inode.c               |    6 +++---
>  include/linux/sunrpc/stats.h |    8 ++++----
>  net/sunrpc/stats.c           |   15 ++++++++-------
>  3 files changed, 15 insertions(+), 14 deletions(-)
> 
> diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
> index 98b2508..5cad6c5 100644
> --- a/fs/nfs/inode.c
> +++ b/fs/nfs/inode.c
> @@ -1623,14 +1623,14 @@ static int __init init_nfs_fs(void)
>  		goto out0;
>  
>  #ifdef CONFIG_PROC_FS
> -	rpc_proc_register(&nfs_rpcstat);
> +	rpc_proc_register(&init_net, &nfs_rpcstat);
>  #endif
>  	if ((err = register_nfs_fs()) != 0)
>  		goto out;
>  	return 0;
>  out:
>  #ifdef CONFIG_PROC_FS
> -	rpc_proc_unregister("nfs");
> +	rpc_proc_unregister(&init_net, "nfs");
>  #endif
>  	nfs_destroy_directcache();
>  out0:
> @@ -1669,7 +1669,7 @@ static void __exit exit_nfs_fs(void)
>  	nfs_dns_resolver_destroy();
>  	nfs_idmap_quit();
>  #ifdef CONFIG_PROC_FS
> -	rpc_proc_unregister("nfs");
> +	rpc_proc_unregister(&init_net, "nfs");
>  #endif
>  	nfs_cleanup_cb_ident_idr();
>  	unregister_nfs_fs();
> diff --git a/include/linux/sunrpc/stats.h b/include/linux/sunrpc/stats.h
> index 680471d..f625b57 100644
> --- a/include/linux/sunrpc/stats.h
> +++ b/include/linux/sunrpc/stats.h
> @@ -58,8 +58,8 @@ void			rpc_modcount(struct inode *, int);
>  #endif
>  
>  #ifdef CONFIG_PROC_FS
> -struct proc_dir_entry *	rpc_proc_register(struct rpc_stat *);
> -void			rpc_proc_unregister(const char *);
> +struct proc_dir_entry *	rpc_proc_register(struct net *,struct rpc_stat *);
> +void			rpc_proc_unregister(struct net *,const char *);
>  void			rpc_proc_zero(struct rpc_program *);
>  struct proc_dir_entry *	svc_proc_register(struct svc_stat *,
>  					  const struct file_operations *);
> @@ -69,8 +69,8 @@ void			svc_seq_show(struct seq_file *,
>  				     const struct svc_stat *);
>  #else
>  
> -static inline struct proc_dir_entry *rpc_proc_register(struct rpc_stat *s) { return NULL; }
> -static inline void rpc_proc_unregister(const char *p) {}
> +static inline struct proc_dir_entry *rpc_proc_register(struct net *, struct rpc_stat *s) { return NULL; }
> +static inline void rpc_proc_unregisterstruct net *, (const char *p) {}
>  static inline void rpc_proc_zero(struct rpc_program *p) {}
>  
>  static inline struct proc_dir_entry *svc_proc_register(struct svc_stat *s,
> diff --git a/net/sunrpc/stats.c b/net/sunrpc/stats.c
> index 80df89d..f0f6e7c 100644
> --- a/net/sunrpc/stats.c
> +++ b/net/sunrpc/stats.c
> @@ -213,28 +213,29 @@ EXPORT_SYMBOL_GPL(rpc_print_iostats);
>   * Register/unregister RPC proc files
>   */
>  static inline struct proc_dir_entry *
> -do_register(const char *name, void *data, const struct file_operations *fops)
> +do_register(struct net *net, const char *name, void *data,
> +	    const struct file_operations *fops)
>  {
>  	struct sunrpc_net *sn;
>  
>  	dprintk("RPC:       registering /proc/net/rpc/%s\n", name);
> -	sn = net_generic(&init_net, sunrpc_net_id);
> +	sn = net_generic(net, sunrpc_net_id);
>  	return proc_create_data(name, 0, sn->proc_net_rpc, fops, data);
>  }
>  
>  struct proc_dir_entry *
> -rpc_proc_register(struct rpc_stat *statp)
> +rpc_proc_register(struct net *net, struct rpc_stat *statp)
>  {
> -	return do_register(statp->program->name, statp, &rpc_proc_fops);
> +	return do_register(net, statp->program->name, statp, &rpc_proc_fops);
>  }
>  EXPORT_SYMBOL_GPL(rpc_proc_register);
>  
>  void
> -rpc_proc_unregister(const char *name)
> +rpc_proc_unregister(struct net *net, const char *name)
>  {
>  	struct sunrpc_net *sn;
>  
> -	sn = net_generic(&init_net, sunrpc_net_id);
> +	sn = net_generic(net, sunrpc_net_id);
>  	remove_proc_entry(name, sn->proc_net_rpc);
>  }
>  EXPORT_SYMBOL_GPL(rpc_proc_unregister);
> @@ -242,7 +243,7 @@ EXPORT_SYMBOL_GPL(rpc_proc_unregister);
>  struct proc_dir_entry *
>  svc_proc_register(struct svc_stat *statp, const struct file_operations *fops)
>  {
> -	return do_register(statp->program->pg_name, statp, fops);
> +	return do_register(&init_net, statp->program->pg_name, statp, fops);
>  }
>  EXPORT_SYMBOL_GPL(svc_proc_register);
>  
> 

WARNING: multiple messages have this Message-ID (diff)
From: "J. Bruce Fields" <bfields-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
To: Stanislav Kinsbursky
	<skinsbursky-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
Cc: Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA@public.gmane.org,
	linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	xemul-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org,
	neilb-l3A5Bk7waGM@public.gmane.org,
	netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	jbottomley-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org,
	davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org,
	devel-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org
Subject: Re: [PATCH 1/2] SUNRPC: register RPC stats /proc entries in passed network namespace context
Date: Tue, 6 Dec 2011 16:33:22 -0500	[thread overview]
Message-ID: <20111206213322.GE12640@fieldses.org> (raw)
In-Reply-To: <20111206124240.15702.61866.stgit-bi+AKbBUZKagILUCTcTcHdKyNwTtLsGr@public.gmane.org>

On Tue, Dec 06, 2011 at 04:42:40PM +0300, Stanislav Kinsbursky wrote:
> This patch makes it possible to create NFS program entry ("/proc/net/rpc/nfs")
> in passed network namespace context instead of hard-coded "init_net".

Looks straightforward to me.

	Acked-by: J. Bruce Fields <bfields-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>

--b.

> 
> Signed-off-by: Stanislav Kinsbursky <skinsbursky-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
> 
> ---
>  fs/nfs/inode.c               |    6 +++---
>  include/linux/sunrpc/stats.h |    8 ++++----
>  net/sunrpc/stats.c           |   15 ++++++++-------
>  3 files changed, 15 insertions(+), 14 deletions(-)
> 
> diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
> index 98b2508..5cad6c5 100644
> --- a/fs/nfs/inode.c
> +++ b/fs/nfs/inode.c
> @@ -1623,14 +1623,14 @@ static int __init init_nfs_fs(void)
>  		goto out0;
>  
>  #ifdef CONFIG_PROC_FS
> -	rpc_proc_register(&nfs_rpcstat);
> +	rpc_proc_register(&init_net, &nfs_rpcstat);
>  #endif
>  	if ((err = register_nfs_fs()) != 0)
>  		goto out;
>  	return 0;
>  out:
>  #ifdef CONFIG_PROC_FS
> -	rpc_proc_unregister("nfs");
> +	rpc_proc_unregister(&init_net, "nfs");
>  #endif
>  	nfs_destroy_directcache();
>  out0:
> @@ -1669,7 +1669,7 @@ static void __exit exit_nfs_fs(void)
>  	nfs_dns_resolver_destroy();
>  	nfs_idmap_quit();
>  #ifdef CONFIG_PROC_FS
> -	rpc_proc_unregister("nfs");
> +	rpc_proc_unregister(&init_net, "nfs");
>  #endif
>  	nfs_cleanup_cb_ident_idr();
>  	unregister_nfs_fs();
> diff --git a/include/linux/sunrpc/stats.h b/include/linux/sunrpc/stats.h
> index 680471d..f625b57 100644
> --- a/include/linux/sunrpc/stats.h
> +++ b/include/linux/sunrpc/stats.h
> @@ -58,8 +58,8 @@ void			rpc_modcount(struct inode *, int);
>  #endif
>  
>  #ifdef CONFIG_PROC_FS
> -struct proc_dir_entry *	rpc_proc_register(struct rpc_stat *);
> -void			rpc_proc_unregister(const char *);
> +struct proc_dir_entry *	rpc_proc_register(struct net *,struct rpc_stat *);
> +void			rpc_proc_unregister(struct net *,const char *);
>  void			rpc_proc_zero(struct rpc_program *);
>  struct proc_dir_entry *	svc_proc_register(struct svc_stat *,
>  					  const struct file_operations *);
> @@ -69,8 +69,8 @@ void			svc_seq_show(struct seq_file *,
>  				     const struct svc_stat *);
>  #else
>  
> -static inline struct proc_dir_entry *rpc_proc_register(struct rpc_stat *s) { return NULL; }
> -static inline void rpc_proc_unregister(const char *p) {}
> +static inline struct proc_dir_entry *rpc_proc_register(struct net *, struct rpc_stat *s) { return NULL; }
> +static inline void rpc_proc_unregisterstruct net *, (const char *p) {}
>  static inline void rpc_proc_zero(struct rpc_program *p) {}
>  
>  static inline struct proc_dir_entry *svc_proc_register(struct svc_stat *s,
> diff --git a/net/sunrpc/stats.c b/net/sunrpc/stats.c
> index 80df89d..f0f6e7c 100644
> --- a/net/sunrpc/stats.c
> +++ b/net/sunrpc/stats.c
> @@ -213,28 +213,29 @@ EXPORT_SYMBOL_GPL(rpc_print_iostats);
>   * Register/unregister RPC proc files
>   */
>  static inline struct proc_dir_entry *
> -do_register(const char *name, void *data, const struct file_operations *fops)
> +do_register(struct net *net, const char *name, void *data,
> +	    const struct file_operations *fops)
>  {
>  	struct sunrpc_net *sn;
>  
>  	dprintk("RPC:       registering /proc/net/rpc/%s\n", name);
> -	sn = net_generic(&init_net, sunrpc_net_id);
> +	sn = net_generic(net, sunrpc_net_id);
>  	return proc_create_data(name, 0, sn->proc_net_rpc, fops, data);
>  }
>  
>  struct proc_dir_entry *
> -rpc_proc_register(struct rpc_stat *statp)
> +rpc_proc_register(struct net *net, struct rpc_stat *statp)
>  {
> -	return do_register(statp->program->name, statp, &rpc_proc_fops);
> +	return do_register(net, statp->program->name, statp, &rpc_proc_fops);
>  }
>  EXPORT_SYMBOL_GPL(rpc_proc_register);
>  
>  void
> -rpc_proc_unregister(const char *name)
> +rpc_proc_unregister(struct net *net, const char *name)
>  {
>  	struct sunrpc_net *sn;
>  
> -	sn = net_generic(&init_net, sunrpc_net_id);
> +	sn = net_generic(net, sunrpc_net_id);
>  	remove_proc_entry(name, sn->proc_net_rpc);
>  }
>  EXPORT_SYMBOL_GPL(rpc_proc_unregister);
> @@ -242,7 +243,7 @@ EXPORT_SYMBOL_GPL(rpc_proc_unregister);
>  struct proc_dir_entry *
>  svc_proc_register(struct svc_stat *statp, const struct file_operations *fops)
>  {
> -	return do_register(statp->program->pg_name, statp, fops);
> +	return do_register(&init_net, statp->program->pg_name, statp, fops);
>  }
>  EXPORT_SYMBOL_GPL(svc_proc_register);
>  
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2011-12-06 21:33 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-06 13:42 [PATCH 0/2] SUNRPC: make /proc helpers network-namespace-aware Stanislav Kinsbursky
2011-12-06 13:42 ` [PATCH 1/2] SUNRPC: register RPC stats /proc entries in passed network namespace context Stanislav Kinsbursky
2011-12-06 21:33   ` J. Bruce Fields [this message]
2011-12-06 21:33     ` J. Bruce Fields
2012-01-30 18:29   ` Paul Gortmaker
2012-01-30 18:29     ` Paul Gortmaker
2012-01-30 20:49     ` Myklebust, Trond
2012-01-30 20:49       ` Myklebust, Trond
2012-01-30 20:49       ` Myklebust, Trond
2011-12-06 13:42 ` [PATCH 2/2] SUNRPC: register service " Stanislav Kinsbursky
2011-12-06 21:49   ` J. Bruce Fields
2011-12-06 21:49     ` J. Bruce Fields
2012-01-20 11:34 ` [PATCH 0/2] SUNRPC: make /proc helpers network-namespace-aware Stanislav Kinsbursky
2012-01-20 14:30   ` bfields
2012-01-20 14:30     ` bfields-uC3wQj2KruNg9hUCZPvPmw
2012-01-20 14:39     ` Trond Myklebust
2012-01-20 16:16       ` Stanislav Kinsbursky

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=20111206213322.GE12640@fieldses.org \
    --to=bfields@fieldses.org \
    --cc=Trond.Myklebust@netapp.com \
    --cc=davem@davemloft.net \
    --cc=devel@openvz.org \
    --cc=jbottomley@parallels.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=neilb@suse.de \
    --cc=netdev@vger.kernel.org \
    --cc=skinsbursky@parallels.com \
    --cc=xemul@parallels.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.