aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/nfs/nfs4proc.c5
-rw-r--r--fs/nfs/nfs4xdr.c5
-rw-r--r--include/linux/nfs_xdr.h5
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 */
4373static int nfs4_xdr_dec_pathconf(struct rpc_rqst *req, __be32 *p, struct nfs_pathconf *pathconf) 4373static 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
737struct nfs4_pathconf_res {
738 struct nfs_pathconf *pathconf;
739 struct nfs4_sequence_res seq_res;
740};
741
737struct nfs4_readdir_arg { 742struct nfs4_readdir_arg {
738 const struct nfs_fh * fh; 743 const struct nfs_fh * fh;
739 u64 cookie; 744 u64 cookie;