diff options
-rw-r--r-- | fs/nfs/nfs4proc.c | 5 | ||||
-rw-r--r-- | fs/nfs/nfs4xdr.c | 5 | ||||
-rw-r--r-- | include/linux/nfs_xdr.h | 5 |
3 files changed, 12 insertions, 3 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index b8915ef533da..aea2e83d3939 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
@@ -2496,10 +2496,13 @@ static int _nfs4_proc_pathconf(struct nfs_server *server, struct nfs_fh *fhandle | |||
2496 | .fh = fhandle, | 2496 | .fh = fhandle, |
2497 | .bitmask = server->attr_bitmask, | 2497 | .bitmask = server->attr_bitmask, |
2498 | }; | 2498 | }; |
2499 | struct nfs4_pathconf_res res = { | ||
2500 | .pathconf = pathconf, | ||
2501 | }; | ||
2499 | struct rpc_message msg = { | 2502 | struct rpc_message msg = { |
2500 | .rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_PATHCONF], | 2503 | .rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_PATHCONF], |
2501 | .rpc_argp = &args, | 2504 | .rpc_argp = &args, |
2502 | .rpc_resp = pathconf, | 2505 | .rpc_resp = &res, |
2503 | }; | 2506 | }; |
2504 | 2507 | ||
2505 | /* None of the pathconf attributes are mandatory to implement */ | 2508 | /* None of the pathconf attributes are mandatory to implement */ |
diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c index d9ab8209c286..a77ee3dd0b3d 100644 --- a/fs/nfs/nfs4xdr.c +++ b/fs/nfs/nfs4xdr.c | |||
@@ -4370,7 +4370,8 @@ static int nfs4_xdr_dec_fsinfo(struct rpc_rqst *req, __be32 *p, | |||
4370 | /* | 4370 | /* |
4371 | * PATHCONF request | 4371 | * PATHCONF request |
4372 | */ | 4372 | */ |
4373 | static int nfs4_xdr_dec_pathconf(struct rpc_rqst *req, __be32 *p, struct nfs_pathconf *pathconf) | 4373 | static int nfs4_xdr_dec_pathconf(struct rpc_rqst *req, __be32 *p, |
4374 | struct nfs4_pathconf_res *res) | ||
4374 | { | 4375 | { |
4375 | struct xdr_stream xdr; | 4376 | struct xdr_stream xdr; |
4376 | struct compound_hdr hdr; | 4377 | struct compound_hdr hdr; |
@@ -4381,7 +4382,7 @@ static int nfs4_xdr_dec_pathconf(struct rpc_rqst *req, __be32 *p, struct nfs_pat | |||
4381 | if (!status) | 4382 | if (!status) |
4382 | status = decode_putfh(&xdr); | 4383 | status = decode_putfh(&xdr); |
4383 | if (!status) | 4384 | if (!status) |
4384 | status = decode_pathconf(&xdr, pathconf); | 4385 | status = decode_pathconf(&xdr, res->pathconf); |
4385 | return status; | 4386 | return status; |
4386 | } | 4387 | } |
4387 | 4388 | ||
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h index 7d64913cbb1b..56523319e14c 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h | |||
@@ -734,6 +734,11 @@ struct nfs4_pathconf_arg { | |||
734 | struct nfs4_sequence_args seq_args; | 734 | struct nfs4_sequence_args seq_args; |
735 | }; | 735 | }; |
736 | 736 | ||
737 | struct nfs4_pathconf_res { | ||
738 | struct nfs_pathconf *pathconf; | ||
739 | struct nfs4_sequence_res seq_res; | ||
740 | }; | ||
741 | |||
737 | struct nfs4_readdir_arg { | 742 | struct nfs4_readdir_arg { |
738 | const struct nfs_fh * fh; | 743 | const struct nfs_fh * fh; |
739 | u64 cookie; | 744 | u64 cookie; |