* [PATCH 0/5] NFS: various small fixes and updates for conteinerization
@ 2012-01-26 11:11 Stanislav Kinsbursky
2012-01-26 11:11 ` [PATCH 1/5] NFS: pass proper net rpc_pton() in nfs_dns_resolve_name() Stanislav Kinsbursky
` (4 more replies)
0 siblings, 5 replies; 12+ messages in thread
From: Stanislav Kinsbursky @ 2012-01-26 11:11 UTC (permalink / raw)
To: Trond.Myklebust
Cc: linux-nfs, xemul, neilb, netdev, linux-kernel, jbottomley,
bfields, davem, devel
Build fix and "init_net" replacements.
The following series consists of:
---
Stanislav Kinsbursky (5):
NFS: pass proper net rpc_pton() in nfs_dns_resolve_name()
NFS: build fixed in case of NFS_USE_NEW_IDMAPPER is undefined
NFS: search for client session id in proper network namespace
NFS: pass current net to rpc_pton() while parsing mount options
NFS: pass transport net to rpc_pton() while parse server name
fs/nfs/callback.h | 1 +
fs/nfs/callback_proc.c | 2 +-
fs/nfs/callback_xdr.c | 1 +
fs/nfs/client.c | 4 ++--
fs/nfs/dns_resolve.c | 2 +-
fs/nfs/idmap.c | 1 +
fs/nfs/internal.h | 3 ++-
fs/nfs/nfs4namespace.c | 6 +++---
fs/nfs/super.c | 4 ++--
9 files changed, 14 insertions(+), 10 deletions(-)
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 1/5] NFS: pass proper net rpc_pton() in nfs_dns_resolve_name()
2012-01-26 11:11 [PATCH 0/5] NFS: various small fixes and updates for conteinerization Stanislav Kinsbursky
@ 2012-01-26 11:11 ` Stanislav Kinsbursky
2012-01-26 11:11 ` [PATCH 2/5] NFS: build fixed in case of NFS_USE_NEW_IDMAPPER is undefined Stanislav Kinsbursky
` (3 subsequent siblings)
4 siblings, 0 replies; 12+ messages in thread
From: Stanislav Kinsbursky @ 2012-01-26 11:11 UTC (permalink / raw)
To: Trond.Myklebust
Cc: linux-nfs, xemul, neilb, netdev, linux-kernel, jbottomley,
bfields, davem, devel
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
---
fs/nfs/dns_resolve.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/fs/nfs/dns_resolve.c b/fs/nfs/dns_resolve.c
index be9a530..fcd8f1d 100644
--- a/fs/nfs/dns_resolve.c
+++ b/fs/nfs/dns_resolve.c
@@ -20,7 +20,7 @@ ssize_t nfs_dns_resolve_name(struct net *net, char *name, size_t namelen,
ip_len = dns_query(NULL, name, namelen, NULL, &ip_addr, NULL);
if (ip_len > 0)
- ret = rpc_pton(&init_net, ip_addr, ip_len, sa, salen);
+ ret = rpc_pton(net, ip_addr, ip_len, sa, salen);
else
ret = -ESRCH;
kfree(ip_addr);
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 2/5] NFS: build fixed in case of NFS_USE_NEW_IDMAPPER is undefined
2012-01-26 11:11 [PATCH 0/5] NFS: various small fixes and updates for conteinerization Stanislav Kinsbursky
2012-01-26 11:11 ` [PATCH 1/5] NFS: pass proper net rpc_pton() in nfs_dns_resolve_name() Stanislav Kinsbursky
@ 2012-01-26 11:11 ` Stanislav Kinsbursky
2012-01-26 11:11 ` [PATCH 3/5] NFS: search for client session id in proper network namespace Stanislav Kinsbursky
` (2 subsequent siblings)
4 siblings, 0 replies; 12+ messages in thread
From: Stanislav Kinsbursky @ 2012-01-26 11:11 UTC (permalink / raw)
To: Trond.Myklebust
Cc: linux-nfs, xemul, neilb, netdev, linux-kernel, jbottomley,
bfields, davem, devel
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
---
fs/nfs/idmap.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/fs/nfs/idmap.c b/fs/nfs/idmap.c
index aed3d2e..04f58d4 100644
--- a/fs/nfs/idmap.c
+++ b/fs/nfs/idmap.c
@@ -378,6 +378,7 @@ int nfs_map_gid_to_group(const struct nfs_server *server, __u32 gid, char *buf,
#include "nfs4_fs.h"
#include "internal.h"
+#include "netns.h"
#define IDMAP_HASH_SZ 128
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 3/5] NFS: search for client session id in proper network namespace
2012-01-26 11:11 [PATCH 0/5] NFS: various small fixes and updates for conteinerization Stanislav Kinsbursky
2012-01-26 11:11 ` [PATCH 1/5] NFS: pass proper net rpc_pton() in nfs_dns_resolve_name() Stanislav Kinsbursky
2012-01-26 11:11 ` [PATCH 2/5] NFS: build fixed in case of NFS_USE_NEW_IDMAPPER is undefined Stanislav Kinsbursky
@ 2012-01-26 11:11 ` Stanislav Kinsbursky
2012-02-07 15:43 ` Bryan Schumaker
2012-01-26 11:11 ` Stanislav Kinsbursky
2012-01-26 11:12 ` [PATCH 5/5] NFS: pass transport net to rpc_pton() while parse server name Stanislav Kinsbursky
4 siblings, 1 reply; 12+ messages in thread
From: Stanislav Kinsbursky @ 2012-01-26 11:11 UTC (permalink / raw)
To: Trond.Myklebust
Cc: linux-nfs, xemul, neilb, netdev, linux-kernel, jbottomley,
bfields, davem, devel
Network namespace is taken from request transport and passed as a part of
cb_process_state structure.
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
---
fs/nfs/callback.h | 1 +
fs/nfs/callback_proc.c | 2 +-
fs/nfs/callback_xdr.c | 1 +
fs/nfs/client.c | 4 ++--
fs/nfs/internal.h | 3 ++-
5 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/fs/nfs/callback.h b/fs/nfs/callback.h
index c89d3b9..197e0d3 100644
--- a/fs/nfs/callback.h
+++ b/fs/nfs/callback.h
@@ -39,6 +39,7 @@ struct cb_process_state {
__be32 drc_status;
struct nfs_client *clp;
int slotid;
+ struct net *net;
};
struct cb_compound_hdr_arg {
diff --git a/fs/nfs/callback_proc.c b/fs/nfs/callback_proc.c
index 0e6e63f..f71978d 100644
--- a/fs/nfs/callback_proc.c
+++ b/fs/nfs/callback_proc.c
@@ -461,7 +461,7 @@ __be32 nfs4_callback_sequence(struct cb_sequenceargs *args,
int i;
__be32 status = htonl(NFS4ERR_BADSESSION);
- clp = nfs4_find_client_sessionid(args->csa_addr, &args->csa_sessionid);
+ clp = nfs4_find_client_sessionid(cps->net, args->csa_addr, &args->csa_sessionid);
if (clp == NULL)
goto out;
diff --git a/fs/nfs/callback_xdr.c b/fs/nfs/callback_xdr.c
index f2be3e1e..8c2a969 100644
--- a/fs/nfs/callback_xdr.c
+++ b/fs/nfs/callback_xdr.c
@@ -861,6 +861,7 @@ static __be32 nfs4_callback_compound(struct svc_rqst *rqstp, void *argp, void *r
.drc_status = 0,
.clp = NULL,
.slotid = -1,
+ .net = rqstp->rq_xprt->xpt_net,
};
unsigned int nops = 0;
diff --git a/fs/nfs/client.c b/fs/nfs/client.c
index 9e11d29..2328dcb 100644
--- a/fs/nfs/client.c
+++ b/fs/nfs/client.c
@@ -1232,11 +1232,11 @@ nfs4_find_client_ident(struct net *net, int cb_ident)
* Returns NULL if no such client
*/
struct nfs_client *
-nfs4_find_client_sessionid(const struct sockaddr *addr,
+nfs4_find_client_sessionid(struct net *net, const struct sockaddr *addr,
struct nfs4_sessionid *sid)
{
struct nfs_client *clp;
- struct nfs_net *nn = net_generic(&init_net, nfs_net_id);
+ struct nfs_net *nn = net_generic(net, nfs_net_id);
spin_lock(&nn->nfs_client_lock);
list_for_each_entry(clp, &nn->nfs_client_list, cl_share_link) {
diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h
index b38b733..0c3648a 100644
--- a/fs/nfs/internal.h
+++ b/fs/nfs/internal.h
@@ -152,7 +152,8 @@ extern void nfs_cleanup_cb_ident_idr(struct net *);
extern void nfs_put_client(struct nfs_client *);
extern struct nfs_client *nfs4_find_client_ident(struct net *, int);
extern struct nfs_client *
-nfs4_find_client_sessionid(const struct sockaddr *, struct nfs4_sessionid *);
+nfs4_find_client_sessionid(struct net *, const struct sockaddr *,
+ struct nfs4_sessionid *);
extern struct nfs_server *nfs_create_server(
const struct nfs_parsed_mount_data *,
struct nfs_fh *);
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 4/5] NFS: pass current net to rpc_pton() while parsing mount options
@ 2012-01-26 11:11 ` Stanislav Kinsbursky
0 siblings, 0 replies; 12+ messages in thread
From: Stanislav Kinsbursky @ 2012-01-26 11:11 UTC (permalink / raw)
To: Trond.Myklebust
Cc: linux-nfs, xemul, neilb, netdev, linux-kernel, jbottomley,
bfields, davem, devel
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
---
fs/nfs/super.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/fs/nfs/super.c b/fs/nfs/super.c
index b79f2a1..5ed6071 100644
--- a/fs/nfs/super.c
+++ b/fs/nfs/super.c
@@ -1408,7 +1408,7 @@ static int nfs_parse_mount_options(char *raw,
if (string == NULL)
goto out_nomem;
mnt->nfs_server.addrlen =
- rpc_pton(&init_net, string, strlen(string),
+ rpc_pton(mnt->net, string, strlen(string),
(struct sockaddr *)
&mnt->nfs_server.address,
sizeof(mnt->nfs_server.address));
@@ -1430,7 +1430,7 @@ static int nfs_parse_mount_options(char *raw,
if (string == NULL)
goto out_nomem;
mnt->mount_server.addrlen =
- rpc_pton(&init_net, string, strlen(string),
+ rpc_pton(mnt->net, string, strlen(string),
(struct sockaddr *)
&mnt->mount_server.address,
sizeof(mnt->mount_server.address));
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 4/5] NFS: pass current net to rpc_pton() while parsing mount options
@ 2012-01-26 11:11 ` Stanislav Kinsbursky
0 siblings, 0 replies; 12+ messages in thread
From: Stanislav Kinsbursky @ 2012-01-26 11:11 UTC (permalink / raw)
To: Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA
Cc: linux-nfs-u79uwXL29TY76Z2rM5mHXA, xemul-bzQdu9zFT3WakBO8gow8eQ,
neilb-l3A5Bk7waGM, netdev-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
jbottomley-bzQdu9zFT3WakBO8gow8eQ, bfields-uC3wQj2KruNg9hUCZPvPmw,
davem-fT/PcQaiUtIeIZ0/mPfg9Q, devel-GEFAQzZX7r8dnm+yROfE0A
Signed-off-by: Stanislav Kinsbursky <skinsbursky-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
---
fs/nfs/super.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/fs/nfs/super.c b/fs/nfs/super.c
index b79f2a1..5ed6071 100644
--- a/fs/nfs/super.c
+++ b/fs/nfs/super.c
@@ -1408,7 +1408,7 @@ static int nfs_parse_mount_options(char *raw,
if (string == NULL)
goto out_nomem;
mnt->nfs_server.addrlen =
- rpc_pton(&init_net, string, strlen(string),
+ rpc_pton(mnt->net, string, strlen(string),
(struct sockaddr *)
&mnt->nfs_server.address,
sizeof(mnt->nfs_server.address));
@@ -1430,7 +1430,7 @@ static int nfs_parse_mount_options(char *raw,
if (string == NULL)
goto out_nomem;
mnt->mount_server.addrlen =
- rpc_pton(&init_net, string, strlen(string),
+ rpc_pton(mnt->net, string, strlen(string),
(struct sockaddr *)
&mnt->mount_server.address,
sizeof(mnt->mount_server.address));
--
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
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 5/5] NFS: pass transport net to rpc_pton() while parse server name
2012-01-26 11:11 [PATCH 0/5] NFS: various small fixes and updates for conteinerization Stanislav Kinsbursky
` (3 preceding siblings ...)
2012-01-26 11:11 ` Stanislav Kinsbursky
@ 2012-01-26 11:12 ` Stanislav Kinsbursky
4 siblings, 0 replies; 12+ messages in thread
From: Stanislav Kinsbursky @ 2012-01-26 11:12 UTC (permalink / raw)
To: Trond.Myklebust
Cc: linux-nfs, xemul, neilb, netdev, linux-kernel, jbottomley,
bfields, davem, devel
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
---
fs/nfs/nfs4namespace.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/fs/nfs/nfs4namespace.c b/fs/nfs/nfs4namespace.c
index 48a9acd..667ea74 100644
--- a/fs/nfs/nfs4namespace.c
+++ b/fs/nfs/nfs4namespace.c
@@ -97,11 +97,11 @@ static size_t nfs_parse_server_name(char *string, size_t len,
struct sockaddr *sa, size_t salen, struct nfs_server *server)
{
ssize_t ret;
+ struct net *net = server->client->cl_xprt->xprt_net;
- ret = rpc_pton(&init_net, string, len, sa, salen);
+ ret = rpc_pton(net, string, len, sa, salen);
if (ret == 0) {
- ret = nfs_dns_resolve_name(server->client->cl_xprt->xprt_net,
- string, len, sa, salen);
+ ret = nfs_dns_resolve_name(net, string, len, sa, salen);
if (ret < 0)
ret = 0;
}
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 3/5] NFS: search for client session id in proper network namespace
2012-01-26 11:11 ` [PATCH 3/5] NFS: search for client session id in proper network namespace Stanislav Kinsbursky
@ 2012-02-07 15:43 ` Bryan Schumaker
2012-02-07 15:50 ` Stanislav Kinsbursky
2012-02-07 17:48 ` Myklebust, Trond
0 siblings, 2 replies; 12+ messages in thread
From: Bryan Schumaker @ 2012-02-07 15:43 UTC (permalink / raw)
To: Stanislav Kinsbursky
Cc: Trond.Myklebust, linux-nfs, xemul, neilb, netdev, linux-kernel,
jbottomley, bfields, davem, devel
On 01/26/12 06:11, Stanislav Kinsbursky wrote:
> Network namespace is taken from request transport and passed as a part of
> cb_process_state structure.
>
> Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
>
> ---
> fs/nfs/callback.h | 1 +
> fs/nfs/callback_proc.c | 2 +-
> fs/nfs/callback_xdr.c | 1 +
> fs/nfs/client.c | 4 ++--
> fs/nfs/internal.h | 3 ++-
> 5 files changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/fs/nfs/callback.h b/fs/nfs/callback.h
> index c89d3b9..197e0d3 100644
> --- a/fs/nfs/callback.h
> +++ b/fs/nfs/callback.h
> @@ -39,6 +39,7 @@ struct cb_process_state {
> __be32 drc_status;
> struct nfs_client *clp;
> int slotid;
> + struct net *net;
> };
>
> struct cb_compound_hdr_arg {
> diff --git a/fs/nfs/callback_proc.c b/fs/nfs/callback_proc.c
> index 0e6e63f..f71978d 100644
> --- a/fs/nfs/callback_proc.c
> +++ b/fs/nfs/callback_proc.c
> @@ -461,7 +461,7 @@ __be32 nfs4_callback_sequence(struct cb_sequenceargs *args,
> int i;
> __be32 status = htonl(NFS4ERR_BADSESSION);
>
> - clp = nfs4_find_client_sessionid(args->csa_addr, &args->csa_sessionid);
> + clp = nfs4_find_client_sessionid(cps->net, args->csa_addr, &args->csa_sessionid);
> if (clp == NULL)
> goto out;
>
> diff --git a/fs/nfs/callback_xdr.c b/fs/nfs/callback_xdr.c
> index f2be3e1e..8c2a969 100644
> --- a/fs/nfs/callback_xdr.c
> +++ b/fs/nfs/callback_xdr.c
> @@ -861,6 +861,7 @@ static __be32 nfs4_callback_compound(struct svc_rqst *rqstp, void *argp, void *r
> .drc_status = 0,
> .clp = NULL,
> .slotid = -1,
> + .net = rqstp->rq_xprt->xpt_net,
> };
> unsigned int nops = 0;
>
> diff --git a/fs/nfs/client.c b/fs/nfs/client.c
> index 9e11d29..2328dcb 100644
> --- a/fs/nfs/client.c
> +++ b/fs/nfs/client.c
> @@ -1232,11 +1232,11 @@ nfs4_find_client_ident(struct net *net, int cb_ident)
> * Returns NULL if no such client
> */
> struct nfs_client *
> -nfs4_find_client_sessionid(const struct sockaddr *addr,
> +nfs4_find_client_sessionid(struct net *net, const struct sockaddr *addr,
> struct nfs4_sessionid *sid)
> {
> struct nfs_client *clp;
> - struct nfs_net *nn = net_generic(&init_net, nfs_net_id);
> + struct nfs_net *nn = net_generic(net, nfs_net_id);
Hi,
You changed this function for the v4.1 case, but not for v4.0 (this is what I was trying to bisect earlier). Without CONFIG_NFS_V4_1 set, I get this:
make[1]: Nothing to be done for `all'.
CHK include/linux/version.h
CHK include/generated/utsrelease.h
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
CHK kernel/config_data.h
CC [M] fs/nfs/client.o
fs/nfs/client.c:1265:1: error: conflicting types for 'nfs4_find_client_sessionid'
fs/nfs/internal.h:155:1: note: previous declaration of 'nfs4_find_client_sessionid' was here
make[2]: *** [fs/nfs/client.o] Error 1
make[1]: *** [fs/nfs] Error 2
make: *** [fs] Error 2
- Bryan
>
> spin_lock(&nn->nfs_client_lock);
> list_for_each_entry(clp, &nn->nfs_client_list, cl_share_link) {
> diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h
> index b38b733..0c3648a 100644
> --- a/fs/nfs/internal.h
> +++ b/fs/nfs/internal.h
> @@ -152,7 +152,8 @@ extern void nfs_cleanup_cb_ident_idr(struct net *);
> extern void nfs_put_client(struct nfs_client *);
> extern struct nfs_client *nfs4_find_client_ident(struct net *, int);
> extern struct nfs_client *
> -nfs4_find_client_sessionid(const struct sockaddr *, struct nfs4_sessionid *);
> +nfs4_find_client_sessionid(struct net *, const struct sockaddr *,
> + struct nfs4_sessionid *);
> extern struct nfs_server *nfs_create_server(
> const struct nfs_parsed_mount_data *,
> struct nfs_fh *);
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 3/5] NFS: search for client session id in proper network namespace
2012-02-07 15:43 ` Bryan Schumaker
@ 2012-02-07 15:50 ` Stanislav Kinsbursky
2012-02-07 17:48 ` Myklebust, Trond
1 sibling, 0 replies; 12+ messages in thread
From: Stanislav Kinsbursky @ 2012-02-07 15:50 UTC (permalink / raw)
To: Bryan Schumaker
Cc: Trond.Myklebust@netapp.com, linux-nfs@vger.kernel.org,
Pavel Emelianov, neilb@suse.de, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org, James Bottomley,
bfields@fieldses.org, davem@davemloft.net, devel@openvz.org
07.02.2012 19:43, Bryan Schumaker пишет:
>
>
> Hi,
>
> You changed this function for the v4.1 case, but not for v4.0 (this is what I was trying to bisect earlier). Without CONFIG_NFS_V4_1 set, I get this:
>
Sorry. Thank for the catch.
I'll send patch soon.
> make[1]: Nothing to be done for `all'.
> CHK include/linux/version.h
> CHK include/generated/utsrelease.h
> CALL scripts/checksyscalls.sh
> CHK include/generated/compile.h
> CHK kernel/config_data.h
> CC [M] fs/nfs/client.o
> fs/nfs/client.c:1265:1: error: conflicting types for 'nfs4_find_client_sessionid'
> fs/nfs/internal.h:155:1: note: previous declaration of 'nfs4_find_client_sessionid' was here
> make[2]: *** [fs/nfs/client.o] Error 1
> make[1]: *** [fs/nfs] Error 2
> make: *** [fs] Error 2
>
> - Bryan
>
d
--
Best regards,
Stanislav Kinsbursky
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 3/5] NFS: search for client session id in proper network namespace
2012-02-07 15:43 ` Bryan Schumaker
2012-02-07 15:50 ` Stanislav Kinsbursky
@ 2012-02-07 17:48 ` Myklebust, Trond
1 sibling, 0 replies; 12+ messages in thread
From: Myklebust, Trond @ 2012-02-07 17:48 UTC (permalink / raw)
To: Schumaker, Bryan
Cc: Stanislav Kinsbursky, linux-nfs@vger.kernel.org,
xemul@parallels.com, neilb@suse.de, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org, jbottomley@parallels.com,
bfields@fieldses.org, davem@davemloft.net, devel@openvz.org
T24gVHVlLCAyMDEyLTAyLTA3IGF0IDEwOjQzIC0wNTAwLCBCcnlhbiBTY2h1bWFrZXIgd3JvdGU6
DQo+IE9uIDAxLzI2LzEyIDA2OjExLCBTdGFuaXNsYXYgS2luc2J1cnNreSB3cm90ZToNCj4gDQo+
ID4gTmV0d29yayBuYW1lc3BhY2UgaXMgdGFrZW4gZnJvbSByZXF1ZXN0IHRyYW5zcG9ydCBhbmQg
cGFzc2VkIGFzIGEgcGFydCBvZg0KPiA+IGNiX3Byb2Nlc3Nfc3RhdGUgc3RydWN0dXJlLg0KPiA+
IA0KPiA+IFNpZ25lZC1vZmYtYnk6IFN0YW5pc2xhdiBLaW5zYnVyc2t5IDxza2luc2J1cnNreUBw
YXJhbGxlbHMuY29tPg0KPiA+IA0KPiA+IC0tLQ0KPiA+ICBmcy9uZnMvY2FsbGJhY2suaCAgICAg
IHwgICAgMSArDQo+ID4gIGZzL25mcy9jYWxsYmFja19wcm9jLmMgfCAgICAyICstDQo+ID4gIGZz
L25mcy9jYWxsYmFja194ZHIuYyAgfCAgICAxICsNCj4gPiAgZnMvbmZzL2NsaWVudC5jICAgICAg
ICB8ICAgIDQgKystLQ0KPiA+ICBmcy9uZnMvaW50ZXJuYWwuaCAgICAgIHwgICAgMyArKy0NCj4g
PiAgNSBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pDQo+ID4g
DQo+ID4gZGlmZiAtLWdpdCBhL2ZzL25mcy9jYWxsYmFjay5oIGIvZnMvbmZzL2NhbGxiYWNrLmgN
Cj4gPiBpbmRleCBjODlkM2I5Li4xOTdlMGQzIDEwMDY0NA0KPiA+IC0tLSBhL2ZzL25mcy9jYWxs
YmFjay5oDQo+ID4gKysrIGIvZnMvbmZzL2NhbGxiYWNrLmgNCj4gPiBAQCAtMzksNiArMzksNyBA
QCBzdHJ1Y3QgY2JfcHJvY2Vzc19zdGF0ZSB7DQo+ID4gIAlfX2JlMzIJCQlkcmNfc3RhdHVzOw0K
PiA+ICAJc3RydWN0IG5mc19jbGllbnQJKmNscDsNCj4gPiAgCWludAkJCXNsb3RpZDsNCj4gPiAr
CXN0cnVjdCBuZXQJCSpuZXQ7DQo+ID4gIH07DQo+ID4gIA0KPiA+ICBzdHJ1Y3QgY2JfY29tcG91
bmRfaGRyX2FyZyB7DQo+ID4gZGlmZiAtLWdpdCBhL2ZzL25mcy9jYWxsYmFja19wcm9jLmMgYi9m
cy9uZnMvY2FsbGJhY2tfcHJvYy5jDQo+ID4gaW5kZXggMGU2ZTYzZi4uZjcxOTc4ZCAxMDA2NDQN
Cj4gPiAtLS0gYS9mcy9uZnMvY2FsbGJhY2tfcHJvYy5jDQo+ID4gKysrIGIvZnMvbmZzL2NhbGxi
YWNrX3Byb2MuYw0KPiA+IEBAIC00NjEsNyArNDYxLDcgQEAgX19iZTMyIG5mczRfY2FsbGJhY2tf
c2VxdWVuY2Uoc3RydWN0IGNiX3NlcXVlbmNlYXJncyAqYXJncywNCj4gPiAgCWludCBpOw0KPiA+
ICAJX19iZTMyIHN0YXR1cyA9IGh0b25sKE5GUzRFUlJfQkFEU0VTU0lPTik7DQo+ID4gIA0KPiA+
IC0JY2xwID0gbmZzNF9maW5kX2NsaWVudF9zZXNzaW9uaWQoYXJncy0+Y3NhX2FkZHIsICZhcmdz
LT5jc2Ffc2Vzc2lvbmlkKTsNCj4gPiArCWNscCA9IG5mczRfZmluZF9jbGllbnRfc2Vzc2lvbmlk
KGNwcy0+bmV0LCBhcmdzLT5jc2FfYWRkciwgJmFyZ3MtPmNzYV9zZXNzaW9uaWQpOw0KPiA+ICAJ
aWYgKGNscCA9PSBOVUxMKQ0KPiA+ICAJCWdvdG8gb3V0Ow0KPiA+ICANCj4gPiBkaWZmIC0tZ2l0
IGEvZnMvbmZzL2NhbGxiYWNrX3hkci5jIGIvZnMvbmZzL2NhbGxiYWNrX3hkci5jDQo+ID4gaW5k
ZXggZjJiZTNlMWUuLjhjMmE5NjkgMTAwNjQ0DQo+ID4gLS0tIGEvZnMvbmZzL2NhbGxiYWNrX3hk
ci5jDQo+ID4gKysrIGIvZnMvbmZzL2NhbGxiYWNrX3hkci5jDQo+ID4gQEAgLTg2MSw2ICs4NjEs
NyBAQCBzdGF0aWMgX19iZTMyIG5mczRfY2FsbGJhY2tfY29tcG91bmQoc3RydWN0IHN2Y19ycXN0
ICpycXN0cCwgdm9pZCAqYXJncCwgdm9pZCAqcg0KPiA+ICAJCS5kcmNfc3RhdHVzID0gMCwNCj4g
PiAgCQkuY2xwID0gTlVMTCwNCj4gPiAgCQkuc2xvdGlkID0gLTEsDQo+ID4gKwkJLm5ldCA9IHJx
c3RwLT5ycV94cHJ0LT54cHRfbmV0LA0KPiA+ICAJfTsNCj4gPiAgCXVuc2lnbmVkIGludCBub3Bz
ID0gMDsNCj4gPiAgDQo+ID4gZGlmZiAtLWdpdCBhL2ZzL25mcy9jbGllbnQuYyBiL2ZzL25mcy9j
bGllbnQuYw0KPiA+IGluZGV4IDllMTFkMjkuLjIzMjhkY2IgMTAwNjQ0DQo+ID4gLS0tIGEvZnMv
bmZzL2NsaWVudC5jDQo+ID4gKysrIGIvZnMvbmZzL2NsaWVudC5jDQo+ID4gQEAgLTEyMzIsMTEg
KzEyMzIsMTEgQEAgbmZzNF9maW5kX2NsaWVudF9pZGVudChzdHJ1Y3QgbmV0ICpuZXQsIGludCBj
Yl9pZGVudCkNCj4gPiAgICogUmV0dXJucyBOVUxMIGlmIG5vIHN1Y2ggY2xpZW50DQo+ID4gICAq
Lw0KPiA+ICBzdHJ1Y3QgbmZzX2NsaWVudCAqDQo+ID4gLW5mczRfZmluZF9jbGllbnRfc2Vzc2lv
bmlkKGNvbnN0IHN0cnVjdCBzb2NrYWRkciAqYWRkciwNCj4gPiArbmZzNF9maW5kX2NsaWVudF9z
ZXNzaW9uaWQoc3RydWN0IG5ldCAqbmV0LCBjb25zdCBzdHJ1Y3Qgc29ja2FkZHIgKmFkZHIsDQo+
ID4gIAkJCSAgIHN0cnVjdCBuZnM0X3Nlc3Npb25pZCAqc2lkKQ0KPiA+ICB7DQo+ID4gIAlzdHJ1
Y3QgbmZzX2NsaWVudCAqY2xwOw0KPiA+IC0Jc3RydWN0IG5mc19uZXQgKm5uID0gbmV0X2dlbmVy
aWMoJmluaXRfbmV0LCBuZnNfbmV0X2lkKTsNCj4gPiArCXN0cnVjdCBuZnNfbmV0ICpubiA9IG5l
dF9nZW5lcmljKG5ldCwgbmZzX25ldF9pZCk7DQo+IA0KPiANCj4gSGksDQo+IA0KPiBZb3UgY2hh
bmdlZCB0aGlzIGZ1bmN0aW9uIGZvciB0aGUgdjQuMSBjYXNlLCBidXQgbm90IGZvciB2NC4wICh0
aGlzIGlzIHdoYXQgSSB3YXMgdHJ5aW5nIHRvIGJpc2VjdCBlYXJsaWVyKS4gIFdpdGhvdXQgQ09O
RklHX05GU19WNF8xIHNldCwgSSBnZXQgdGhpczoNCj4gDQo+ICBtYWtlWzFdOiBOb3RoaW5nIHRv
IGJlIGRvbmUgZm9yIGBhbGwnLg0KPiAgIENISyAgICAgaW5jbHVkZS9saW51eC92ZXJzaW9uLmgN
Cj4gICBDSEsgICAgIGluY2x1ZGUvZ2VuZXJhdGVkL3V0c3JlbGVhc2UuaA0KPiAgIENBTEwgICAg
c2NyaXB0cy9jaGVja3N5c2NhbGxzLnNoDQo+ICAgQ0hLICAgICBpbmNsdWRlL2dlbmVyYXRlZC9j
b21waWxlLmgNCj4gICBDSEsgICAgIGtlcm5lbC9jb25maWdfZGF0YS5oDQo+ICAgQ0MgW01dICBm
cy9uZnMvY2xpZW50Lm8NCj4gZnMvbmZzL2NsaWVudC5jOjEyNjU6MTogZXJyb3I6IGNvbmZsaWN0
aW5nIHR5cGVzIGZvciAnbmZzNF9maW5kX2NsaWVudF9zZXNzaW9uaWQnDQo+IGZzL25mcy9pbnRl
cm5hbC5oOjE1NToxOiBub3RlOiBwcmV2aW91cyBkZWNsYXJhdGlvbiBvZiAnbmZzNF9maW5kX2Ns
aWVudF9zZXNzaW9uaWQnIHdhcyBoZXJlDQo+IG1ha2VbMl06ICoqKiBbZnMvbmZzL2NsaWVudC5v
XSBFcnJvciAxDQo+IG1ha2VbMV06ICoqKiBbZnMvbmZzXSBFcnJvciAyDQo+IG1ha2U6ICoqKiBb
ZnNdIEVycm9yIDINCg0KVGhhbmtzIGZvciB0cmFja2luZyB0aGlzIGRvd24gQnJ5YW4hDQoNCi0t
IA0KVHJvbmQgTXlrbGVidXN0DQpMaW51eCBORlMgY2xpZW50IG1haW50YWluZXINCg0KTmV0QXBw
DQpUcm9uZC5NeWtsZWJ1c3RAbmV0YXBwLmNvbQ0Kd3d3Lm5ldGFwcC5jb20NCg0K
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 3/5] NFS: search for client session id in proper network namespace
@ 2012-02-07 17:48 ` Myklebust, Trond
0 siblings, 0 replies; 12+ messages in thread
From: Myklebust, Trond @ 2012-02-07 17:48 UTC (permalink / raw)
To: Schumaker, Bryan
Cc: Stanislav Kinsbursky, linux-nfs@vger.kernel.org,
xemul@parallels.com, neilb@suse.de, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org, jbottomley@parallels.com,
bfields@fieldses.org, davem@davemloft.net, devel@openvz.org
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="utf-8", Size: 3474 bytes --]
On Tue, 2012-02-07 at 10:43 -0500, Bryan Schumaker wrote:
> On 01/26/12 06:11, Stanislav Kinsbursky wrote:
>
> > Network namespace is taken from request transport and passed as a part of
> > cb_process_state structure.
> >
> > Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
> >
> > ---
> > fs/nfs/callback.h | 1 +
> > fs/nfs/callback_proc.c | 2 +-
> > fs/nfs/callback_xdr.c | 1 +
> > fs/nfs/client.c | 4 ++--
> > fs/nfs/internal.h | 3 ++-
> > 5 files changed, 7 insertions(+), 4 deletions(-)
> >
> > diff --git a/fs/nfs/callback.h b/fs/nfs/callback.h
> > index c89d3b9..197e0d3 100644
> > --- a/fs/nfs/callback.h
> > +++ b/fs/nfs/callback.h
> > @@ -39,6 +39,7 @@ struct cb_process_state {
> > __be32 drc_status;
> > struct nfs_client *clp;
> > int slotid;
> > + struct net *net;
> > };
> >
> > struct cb_compound_hdr_arg {
> > diff --git a/fs/nfs/callback_proc.c b/fs/nfs/callback_proc.c
> > index 0e6e63f..f71978d 100644
> > --- a/fs/nfs/callback_proc.c
> > +++ b/fs/nfs/callback_proc.c
> > @@ -461,7 +461,7 @@ __be32 nfs4_callback_sequence(struct cb_sequenceargs *args,
> > int i;
> > __be32 status = htonl(NFS4ERR_BADSESSION);
> >
> > - clp = nfs4_find_client_sessionid(args->csa_addr, &args->csa_sessionid);
> > + clp = nfs4_find_client_sessionid(cps->net, args->csa_addr, &args->csa_sessionid);
> > if (clp == NULL)
> > goto out;
> >
> > diff --git a/fs/nfs/callback_xdr.c b/fs/nfs/callback_xdr.c
> > index f2be3e1e..8c2a969 100644
> > --- a/fs/nfs/callback_xdr.c
> > +++ b/fs/nfs/callback_xdr.c
> > @@ -861,6 +861,7 @@ static __be32 nfs4_callback_compound(struct svc_rqst *rqstp, void *argp, void *r
> > .drc_status = 0,
> > .clp = NULL,
> > .slotid = -1,
> > + .net = rqstp->rq_xprt->xpt_net,
> > };
> > unsigned int nops = 0;
> >
> > diff --git a/fs/nfs/client.c b/fs/nfs/client.c
> > index 9e11d29..2328dcb 100644
> > --- a/fs/nfs/client.c
> > +++ b/fs/nfs/client.c
> > @@ -1232,11 +1232,11 @@ nfs4_find_client_ident(struct net *net, int cb_ident)
> > * Returns NULL if no such client
> > */
> > struct nfs_client *
> > -nfs4_find_client_sessionid(const struct sockaddr *addr,
> > +nfs4_find_client_sessionid(struct net *net, const struct sockaddr *addr,
> > struct nfs4_sessionid *sid)
> > {
> > struct nfs_client *clp;
> > - struct nfs_net *nn = net_generic(&init_net, nfs_net_id);
> > + struct nfs_net *nn = net_generic(net, nfs_net_id);
>
>
> Hi,
>
> You changed this function for the v4.1 case, but not for v4.0 (this is what I was trying to bisect earlier). Without CONFIG_NFS_V4_1 set, I get this:
>
> make[1]: Nothing to be done for `all'.
> CHK include/linux/version.h
> CHK include/generated/utsrelease.h
> CALL scripts/checksyscalls.sh
> CHK include/generated/compile.h
> CHK kernel/config_data.h
> CC [M] fs/nfs/client.o
> fs/nfs/client.c:1265:1: error: conflicting types for 'nfs4_find_client_sessionid'
> fs/nfs/internal.h:155:1: note: previous declaration of 'nfs4_find_client_sessionid' was here
> make[2]: *** [fs/nfs/client.o] Error 1
> make[1]: *** [fs/nfs] Error 2
> make: *** [fs] Error 2
Thanks for tracking this down Bryan!
--
Trond Myklebust
Linux NFS client maintainer
NetApp
Trond.Myklebust@netapp.com
www.netapp.com
ÿôèº{.nÇ+·®+%Ëÿ±éݶ\x17¥wÿº{.nÇ+·¥{±þG«éÿ{ayº\x1dÊÚë,j\a¢f£¢·hïêÿêçz_è®\x03(éÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?¨èÚ&£ø§~á¶iOæ¬z·vØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?I¥
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 3/5] NFS: search for client session id in proper network namespace
@ 2012-02-07 17:48 ` Myklebust, Trond
0 siblings, 0 replies; 12+ messages in thread
From: Myklebust, Trond @ 2012-02-07 17:48 UTC (permalink / raw)
To: Schumaker, Bryan
Cc: Stanislav Kinsbursky, linux-nfs@vger.kernel.org,
xemul@parallels.com, neilb@suse.de, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org, jbottomley@parallels.com,
bfields@fieldses.org, davem@davemloft.net, devel@openvz.org
On Tue, 2012-02-07 at 10:43 -0500, Bryan Schumaker wrote:
> On 01/26/12 06:11, Stanislav Kinsbursky wrote:
>
> > Network namespace is taken from request transport and passed as a part of
> > cb_process_state structure.
> >
> > Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
> >
> > ---
> > fs/nfs/callback.h | 1 +
> > fs/nfs/callback_proc.c | 2 +-
> > fs/nfs/callback_xdr.c | 1 +
> > fs/nfs/client.c | 4 ++--
> > fs/nfs/internal.h | 3 ++-
> > 5 files changed, 7 insertions(+), 4 deletions(-)
> >
> > diff --git a/fs/nfs/callback.h b/fs/nfs/callback.h
> > index c89d3b9..197e0d3 100644
> > --- a/fs/nfs/callback.h
> > +++ b/fs/nfs/callback.h
> > @@ -39,6 +39,7 @@ struct cb_process_state {
> > __be32 drc_status;
> > struct nfs_client *clp;
> > int slotid;
> > + struct net *net;
> > };
> >
> > struct cb_compound_hdr_arg {
> > diff --git a/fs/nfs/callback_proc.c b/fs/nfs/callback_proc.c
> > index 0e6e63f..f71978d 100644
> > --- a/fs/nfs/callback_proc.c
> > +++ b/fs/nfs/callback_proc.c
> > @@ -461,7 +461,7 @@ __be32 nfs4_callback_sequence(struct cb_sequenceargs *args,
> > int i;
> > __be32 status = htonl(NFS4ERR_BADSESSION);
> >
> > - clp = nfs4_find_client_sessionid(args->csa_addr, &args->csa_sessionid);
> > + clp = nfs4_find_client_sessionid(cps->net, args->csa_addr, &args->csa_sessionid);
> > if (clp == NULL)
> > goto out;
> >
> > diff --git a/fs/nfs/callback_xdr.c b/fs/nfs/callback_xdr.c
> > index f2be3e1e..8c2a969 100644
> > --- a/fs/nfs/callback_xdr.c
> > +++ b/fs/nfs/callback_xdr.c
> > @@ -861,6 +861,7 @@ static __be32 nfs4_callback_compound(struct svc_rqst *rqstp, void *argp, void *r
> > .drc_status = 0,
> > .clp = NULL,
> > .slotid = -1,
> > + .net = rqstp->rq_xprt->xpt_net,
> > };
> > unsigned int nops = 0;
> >
> > diff --git a/fs/nfs/client.c b/fs/nfs/client.c
> > index 9e11d29..2328dcb 100644
> > --- a/fs/nfs/client.c
> > +++ b/fs/nfs/client.c
> > @@ -1232,11 +1232,11 @@ nfs4_find_client_ident(struct net *net, int cb_ident)
> > * Returns NULL if no such client
> > */
> > struct nfs_client *
> > -nfs4_find_client_sessionid(const struct sockaddr *addr,
> > +nfs4_find_client_sessionid(struct net *net, const struct sockaddr *addr,
> > struct nfs4_sessionid *sid)
> > {
> > struct nfs_client *clp;
> > - struct nfs_net *nn = net_generic(&init_net, nfs_net_id);
> > + struct nfs_net *nn = net_generic(net, nfs_net_id);
>
>
> Hi,
>
> You changed this function for the v4.1 case, but not for v4.0 (this is what I was trying to bisect earlier). Without CONFIG_NFS_V4_1 set, I get this:
>
> make[1]: Nothing to be done for `all'.
> CHK include/linux/version.h
> CHK include/generated/utsrelease.h
> CALL scripts/checksyscalls.sh
> CHK include/generated/compile.h
> CHK kernel/config_data.h
> CC [M] fs/nfs/client.o
> fs/nfs/client.c:1265:1: error: conflicting types for 'nfs4_find_client_sessionid'
> fs/nfs/internal.h:155:1: note: previous declaration of 'nfs4_find_client_sessionid' was here
> make[2]: *** [fs/nfs/client.o] Error 1
> make[1]: *** [fs/nfs] Error 2
> make: *** [fs] Error 2
Thanks for tracking this down Bryan!
--
Trond Myklebust
Linux NFS client maintainer
NetApp
Trond.Myklebust@netapp.com
www.netapp.com
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2012-02-07 17:49 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-26 11:11 [PATCH 0/5] NFS: various small fixes and updates for conteinerization Stanislav Kinsbursky
2012-01-26 11:11 ` [PATCH 1/5] NFS: pass proper net rpc_pton() in nfs_dns_resolve_name() Stanislav Kinsbursky
2012-01-26 11:11 ` [PATCH 2/5] NFS: build fixed in case of NFS_USE_NEW_IDMAPPER is undefined Stanislav Kinsbursky
2012-01-26 11:11 ` [PATCH 3/5] NFS: search for client session id in proper network namespace Stanislav Kinsbursky
2012-02-07 15:43 ` Bryan Schumaker
2012-02-07 15:50 ` Stanislav Kinsbursky
2012-02-07 17:48 ` Myklebust, Trond
2012-02-07 17:48 ` Myklebust, Trond
2012-02-07 17:48 ` Myklebust, Trond
2012-01-26 11:11 ` [PATCH 4/5] NFS: pass current net to rpc_pton() while parsing mount options Stanislav Kinsbursky
2012-01-26 11:11 ` Stanislav Kinsbursky
2012-01-26 11:12 ` [PATCH 5/5] NFS: pass transport net to rpc_pton() while parse server name Stanislav Kinsbursky
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.