From: "J. Bruce Fields" <bfields@fieldses.org>
To: Stanislav Kinsbursky <skinsbursky@parallels.com>
Cc: linux-nfs@vger.kernel.org, Trond.Myklebust@netapp.com,
linux-kernel@vger.kernel.org, devel@openvz.org
Subject: Re: [PATCH] NFS: hard-code init_net for NFS callback transports
Date: Mon, 11 Jun 2012 08:37:18 -0400 [thread overview]
Message-ID: <20120611123718.GF7654@fieldses.org> (raw)
In-Reply-To: <20120601095424.24427.74720.stgit@localhost.localdomain>
On Fri, Jun 01, 2012 at 01:55:47PM +0400, Stanislav Kinsbursky wrote:
> This patch set is a bug fix for Bruce's 3.5 branch.
> I'll rebase this for 3.4 and resend.
Apologies for neglecting this, I'm done with the bakeathon and should be
back to this soon.
But, I'm a bit confused: you say you'll rebase this, but I've only seen
two rebased patches for 3.4, and neither looks like a simple rebase of
this one.
OK, I'll look more closely and probably I'll figure out. But in
general, a little more detail in changelogs would help me process
patches more quickly:
- Please make sure it's clear whether a given patch is a bug
fix, a new feature, or code reshuffling that isn't intended to
change behavior. If it's a bug fix, tell me whether we've had
the bug forever or whether it's a recent regression. And
(relevant here) if it's a recent regression, reference the ID
of the commit that introduced it.
- If something is a backport, please reference in the changelog
the commit ID of the backported patch, especially if it's not
obviously the same.
--b.
>
> In case of destroying mount namespace on child reaper exit, nsproxy is zeroed
> to the point already. So, dereferencing of it is invalid.
> This patch hard-code "init_net" for all network namespace references for NFS
> callback services. This will be fixed with proper NFS callback
> containerization.
>
> Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
> ---
> fs/nfs/callback.c | 11 +++++------
> 1 files changed, 5 insertions(+), 6 deletions(-)
>
> diff --git a/fs/nfs/callback.c b/fs/nfs/callback.c
> index 970659d..23ff18f 100644
> --- a/fs/nfs/callback.c
> +++ b/fs/nfs/callback.c
> @@ -17,7 +17,6 @@
> #include <linux/kthread.h>
> #include <linux/sunrpc/svcauth_gss.h>
> #include <linux/sunrpc/bc_xprt.h>
> -#include <linux/nsproxy.h>
>
> #include <net/inet_sock.h>
>
> @@ -107,7 +106,7 @@ nfs4_callback_up(struct svc_serv *serv, struct rpc_xprt *xprt)
> {
> int ret;
>
> - ret = svc_create_xprt(serv, "tcp", xprt->xprt_net, PF_INET,
> + ret = svc_create_xprt(serv, "tcp", &init_net, PF_INET,
> nfs_callback_set_tcpport, SVC_SOCK_ANONYMOUS);
> if (ret <= 0)
> goto out_err;
> @@ -115,7 +114,7 @@ nfs4_callback_up(struct svc_serv *serv, struct rpc_xprt *xprt)
> dprintk("NFS: Callback listener port = %u (af %u)\n",
> nfs_callback_tcpport, PF_INET);
>
> - ret = svc_create_xprt(serv, "tcp", xprt->xprt_net, PF_INET6,
> + ret = svc_create_xprt(serv, "tcp", &init_net, PF_INET6,
> nfs_callback_set_tcpport, SVC_SOCK_ANONYMOUS);
> if (ret > 0) {
> nfs_callback_tcpport6 = ret;
> @@ -184,7 +183,7 @@ nfs41_callback_up(struct svc_serv *serv, struct rpc_xprt *xprt)
> * fore channel connection.
> * Returns the input port (0) and sets the svc_serv bc_xprt on success
> */
> - ret = svc_create_xprt(serv, "tcp-bc", xprt->xprt_net, PF_INET, 0,
> + ret = svc_create_xprt(serv, "tcp-bc", &init_net, PF_INET, 0,
> SVC_SOCK_ANONYMOUS);
> if (ret < 0) {
> rqstp = ERR_PTR(ret);
> @@ -254,7 +253,7 @@ int nfs_callback_up(u32 minorversion, struct rpc_xprt *xprt)
> char svc_name[12];
> int ret = 0;
> int minorversion_setup;
> - struct net *net = current->nsproxy->net_ns;
> + struct net *net = &init_net;
>
> mutex_lock(&nfs_callback_mutex);
> if (cb_info->users++ || cb_info->task != NULL) {
> @@ -330,7 +329,7 @@ void nfs_callback_down(int minorversion)
> cb_info->users--;
> if (cb_info->users == 0 && cb_info->task != NULL) {
> kthread_stop(cb_info->task);
> - svc_shutdown_net(cb_info->serv, current->nsproxy->net_ns);
> + svc_shutdown_net(cb_info->serv, &init_net);
> svc_exit_thread(cb_info->rqst);
> cb_info->serv = NULL;
> cb_info->rqst = NULL;
>
next prev parent reply other threads:[~2012-06-11 12:37 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-01 9:55 [PATCH] NFS: hard-code init_net for NFS callback transports Stanislav Kinsbursky
2012-06-11 12:37 ` J. Bruce Fields [this message]
2012-06-12 15:53 ` J. Bruce Fields
2012-06-13 8:16 ` Stanislav Kinsbursky
2012-06-13 11:15 ` 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=20120611123718.GF7654@fieldses.org \
--to=bfields@fieldses.org \
--cc=Trond.Myklebust@netapp.com \
--cc=devel@openvz.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=skinsbursky@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).