OpenVZ Forum


Home » Mailing lists » Devel » [PATCH v2 00/12] NFS: callback threads containerization
[PATCH v2 07/12] NFS: make nfs_callback_tcpport per network context [message #46428 is a reply to message #46423] Tue, 22 May 2012 07:36 Go to previous messageGo to previous message
Stanislav Kinsbursky is currently offline  Stanislav Kinsbursky
Messages: 683
Registered: October 2011
Senior Member
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
---
fs/nfs/callback.c | 7 ++++---
fs/nfs/callback.h | 1 -
fs/nfs/netns.h | 1 +
fs/nfs/nfs4state.c | 5 ++++-
4 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/fs/nfs/callback.c b/fs/nfs/callback.c
index 11201dd..9380184 100644
--- a/fs/nfs/callback.c
+++ b/fs/nfs/callback.c
@@ -24,6 +24,7 @@
#include "nfs4_fs.h"
#include "callback.h"
#include "internal.h"
+#include "netns.h"

#define NFSDBG_FACILITY NFSDBG_CALLBACK

@@ -39,7 +40,6 @@ static DEFINE_MUTEX(nfs_callback_mutex);
static struct svc_program nfs4_callback_program;

unsigned int nfs_callback_set_tcpport;
-unsigned short nfs_callback_tcpport;
unsigned short nfs_callback_tcpport6;
#define NFS_CALLBACK_MAXPORTNR (65535U)

@@ -67,14 +67,15 @@ module_param_named(callback_tcpport, nfs_callback_set_tcpport, portnr, 0644);
static int nfs4_callback_up_net(struct svc_serv *serv, struct net *net)
{
int ret;
+ struct nfs_net *nn = net_generic(net, nfs_net_id);

ret = svc_create_xprt(serv, "tcp", net, PF_INET,
nfs_callback_set_tcpport, SVC_SOCK_ANONYMOUS);
if (ret <= 0)
goto out_err;
- nfs_callback_tcpport = ret;
+ nn->nfs_callback_tcpport = ret;
dprintk("NFS: Callback listener port = %u (af %u, net %p)\n",
- nfs_callback_tcpport, PF_INET, net);
+ nn->nfs_callback_tcpport, PF_INET, net);

ret = svc_create_xprt(serv, "tcp", net, PF_INET6,
nfs_callback_set_tcpport, SVC_SOCK_ANONYMOUS);
diff --git a/fs/nfs/callback.h b/fs/nfs/callback.h
index 6d900cf..8006959 100644
--- a/fs/nfs/callback.h
+++ b/fs/nfs/callback.h
@@ -208,7 +208,6 @@ extern int nfs4_set_callback_sessionid(struct nfs_client *clp);
#define NFS41_BC_MAX_CALLBACKS 1

extern unsigned int nfs_callback_set_tcpport;
-extern unsigned short nfs_callback_tcpport;
extern unsigned short nfs_callback_tcpport6;

#endif /* __LINUX_FS_NFS_CALLBACK_H */
diff --git a/fs/nfs/netns.h b/fs/nfs/netns.h
index aa14ec3..8e4e8f8 100644
--- a/fs/nfs/netns.h
+++ b/fs/nfs/netns.h
@@ -18,6 +18,7 @@ struct nfs_net {
struct list_head nfs_volume_list;
#ifdef CONFIG_NFS_V4
struct idr cb_ident_idr; /* Protected by nfs_client_lock */
+ unsigned short nfs_callback_tcpport;
#endif
spinlock_t nfs_client_lock;
};
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
index 0f43414..5d68b3b 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
@@ -57,6 +57,8 @@
#include "internal.h"
#include "pnfs.h"

+#include "netns.h"
+
#define OPENOWNER_POOL_SIZE 8

const nfs4_stateid zero_stateid;
@@ -71,10 +73,11 @@ int nfs4_init_clientid(struct nfs_client *clp, struct rpc_cred *cred)
};
unsigned short port;
int status;
+ struct nfs_net *nn = net_generic(clp->net, nfs_net_id);

if (test_bit(NFS4CLNT_LEASE_CONFIRM, &clp->cl_state))
goto do_confirm;
- port = nfs_callback_tcpport;
+ port = nn->nfs_callback_tcpport;
if (clp->cl_addr.ss_family == AF_INET6)
port = nfs_callback_tcpport6;
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: [RFC] memcg: propagate kmem limiting information to children
Next Topic: [PATCH] NFS: init client before declaration
Goto Forum:
  


Current Time: Sat Jul 12 12:22:56 GMT 2025

Total time taken to generate the page: 0.01713 seconds