SUNRPC: Replace the "__be32 *p" parameter to .pc_encode
The passed-in value of the "__be32 *p" parameter is now unused in every server-side XDR encoder, and can be removed. Note also that there is a line in each encoder that sets up a local pointer to a struct xdr_stream. Passing that pointer from the dispatcher instead saves one line per encoder function. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
parent
3b0ebb255f
commit
fda4944114
@ -780,7 +780,6 @@ module_exit(exit_nlm);
|
|||||||
static int nlmsvc_dispatch(struct svc_rqst *rqstp, __be32 *statp)
|
static int nlmsvc_dispatch(struct svc_rqst *rqstp, __be32 *statp)
|
||||||
{
|
{
|
||||||
const struct svc_procedure *procp = rqstp->rq_procinfo;
|
const struct svc_procedure *procp = rqstp->rq_procinfo;
|
||||||
struct kvec *resv = rqstp->rq_res.head;
|
|
||||||
|
|
||||||
svcxdr_init_decode(rqstp);
|
svcxdr_init_decode(rqstp);
|
||||||
if (!procp->pc_decode(rqstp, &rqstp->rq_arg_stream))
|
if (!procp->pc_decode(rqstp, &rqstp->rq_arg_stream))
|
||||||
@ -793,7 +792,7 @@ static int nlmsvc_dispatch(struct svc_rqst *rqstp, __be32 *statp)
|
|||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
svcxdr_init_encode(rqstp);
|
svcxdr_init_encode(rqstp);
|
||||||
if (!procp->pc_encode(rqstp, resv->iov_base + resv->iov_len))
|
if (!procp->pc_encode(rqstp, &rqstp->rq_res_stream))
|
||||||
goto out_encode_err;
|
goto out_encode_err;
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -314,15 +314,14 @@ nlmsvc_decode_notify(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
int
|
int
|
||||||
nlmsvc_encode_void(struct svc_rqst *rqstp, __be32 *p)
|
nlmsvc_encode_void(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
nlmsvc_encode_testres(struct svc_rqst *rqstp, __be32 *p)
|
nlmsvc_encode_testres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nlm_res *resp = rqstp->rq_resp;
|
struct nlm_res *resp = rqstp->rq_resp;
|
||||||
|
|
||||||
return svcxdr_encode_cookie(xdr, &resp->cookie) &&
|
return svcxdr_encode_cookie(xdr, &resp->cookie) &&
|
||||||
@ -330,9 +329,8 @@ nlmsvc_encode_testres(struct svc_rqst *rqstp, __be32 *p)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
nlmsvc_encode_res(struct svc_rqst *rqstp, __be32 *p)
|
nlmsvc_encode_res(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nlm_res *resp = rqstp->rq_resp;
|
struct nlm_res *resp = rqstp->rq_resp;
|
||||||
|
|
||||||
return svcxdr_encode_cookie(xdr, &resp->cookie) &&
|
return svcxdr_encode_cookie(xdr, &resp->cookie) &&
|
||||||
@ -340,9 +338,8 @@ nlmsvc_encode_res(struct svc_rqst *rqstp, __be32 *p)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
nlmsvc_encode_shareres(struct svc_rqst *rqstp, __be32 *p)
|
nlmsvc_encode_shareres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nlm_res *resp = rqstp->rq_resp;
|
struct nlm_res *resp = rqstp->rq_resp;
|
||||||
|
|
||||||
if (!svcxdr_encode_cookie(xdr, &resp->cookie))
|
if (!svcxdr_encode_cookie(xdr, &resp->cookie))
|
||||||
|
@ -313,15 +313,14 @@ nlm4svc_decode_notify(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
int
|
int
|
||||||
nlm4svc_encode_void(struct svc_rqst *rqstp, __be32 *p)
|
nlm4svc_encode_void(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
nlm4svc_encode_testres(struct svc_rqst *rqstp, __be32 *p)
|
nlm4svc_encode_testres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nlm_res *resp = rqstp->rq_resp;
|
struct nlm_res *resp = rqstp->rq_resp;
|
||||||
|
|
||||||
return svcxdr_encode_cookie(xdr, &resp->cookie) &&
|
return svcxdr_encode_cookie(xdr, &resp->cookie) &&
|
||||||
@ -329,9 +328,8 @@ nlm4svc_encode_testres(struct svc_rqst *rqstp, __be32 *p)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
nlm4svc_encode_res(struct svc_rqst *rqstp, __be32 *p)
|
nlm4svc_encode_res(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nlm_res *resp = rqstp->rq_resp;
|
struct nlm_res *resp = rqstp->rq_resp;
|
||||||
|
|
||||||
return svcxdr_encode_cookie(xdr, &resp->cookie) &&
|
return svcxdr_encode_cookie(xdr, &resp->cookie) &&
|
||||||
@ -339,9 +337,8 @@ nlm4svc_encode_res(struct svc_rqst *rqstp, __be32 *p)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
nlm4svc_encode_shareres(struct svc_rqst *rqstp, __be32 *p)
|
nlm4svc_encode_shareres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nlm_res *resp = rqstp->rq_resp;
|
struct nlm_res *resp = rqstp->rq_resp;
|
||||||
|
|
||||||
if (!svcxdr_encode_cookie(xdr, &resp->cookie))
|
if (!svcxdr_encode_cookie(xdr, &resp->cookie))
|
||||||
|
@ -67,9 +67,9 @@ static __be32 nfs4_callback_null(struct svc_rqst *rqstp)
|
|||||||
* svc_process_common() looks for an XDR encoder to know when
|
* svc_process_common() looks for an XDR encoder to know when
|
||||||
* not to drop a Reply.
|
* not to drop a Reply.
|
||||||
*/
|
*/
|
||||||
static int nfs4_encode_void(struct svc_rqst *rqstp, __be32 *p)
|
static int nfs4_encode_void(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
return xdr_ressize_check(rqstp, p);
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static __be32 decode_string(struct xdr_stream *xdr, unsigned int *len,
|
static __be32 decode_string(struct xdr_stream *xdr, unsigned int *len,
|
||||||
|
@ -240,9 +240,9 @@ nfsaclsvc_decode_accessargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* GETACL */
|
/* GETACL */
|
||||||
static int nfsaclsvc_encode_getaclres(struct svc_rqst *rqstp, __be32 *p)
|
static int
|
||||||
|
nfsaclsvc_encode_getaclres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nfsd3_getaclres *resp = rqstp->rq_resp;
|
struct nfsd3_getaclres *resp = rqstp->rq_resp;
|
||||||
struct dentry *dentry = resp->fh.fh_dentry;
|
struct dentry *dentry = resp->fh.fh_dentry;
|
||||||
struct inode *inode;
|
struct inode *inode;
|
||||||
@ -280,9 +280,9 @@ static int nfsaclsvc_encode_getaclres(struct svc_rqst *rqstp, __be32 *p)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* ACCESS */
|
/* ACCESS */
|
||||||
static int nfsaclsvc_encode_accessres(struct svc_rqst *rqstp, __be32 *p)
|
static int
|
||||||
|
nfsaclsvc_encode_accessres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nfsd3_accessres *resp = rqstp->rq_resp;
|
struct nfsd3_accessres *resp = rqstp->rq_resp;
|
||||||
|
|
||||||
if (!svcxdr_encode_stat(xdr, resp->status))
|
if (!svcxdr_encode_stat(xdr, resp->status))
|
||||||
|
@ -166,9 +166,9 @@ nfs3svc_decode_setaclargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* GETACL */
|
/* GETACL */
|
||||||
static int nfs3svc_encode_getaclres(struct svc_rqst *rqstp, __be32 *p)
|
static int
|
||||||
|
nfs3svc_encode_getaclres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nfsd3_getaclres *resp = rqstp->rq_resp;
|
struct nfsd3_getaclres *resp = rqstp->rq_resp;
|
||||||
struct dentry *dentry = resp->fh.fh_dentry;
|
struct dentry *dentry = resp->fh.fh_dentry;
|
||||||
struct kvec *head = rqstp->rq_res.head;
|
struct kvec *head = rqstp->rq_res.head;
|
||||||
@ -218,9 +218,9 @@ static int nfs3svc_encode_getaclres(struct svc_rqst *rqstp, __be32 *p)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* SETACL */
|
/* SETACL */
|
||||||
static int nfs3svc_encode_setaclres(struct svc_rqst *rqstp, __be32 *p)
|
static int
|
||||||
|
nfs3svc_encode_setaclres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nfsd3_attrstat *resp = rqstp->rq_resp;
|
struct nfsd3_attrstat *resp = rqstp->rq_resp;
|
||||||
|
|
||||||
return svcxdr_encode_nfsstat3(xdr, resp->status) &&
|
return svcxdr_encode_nfsstat3(xdr, resp->status) &&
|
||||||
|
@ -813,9 +813,8 @@ nfs3svc_decode_commitargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
|||||||
|
|
||||||
/* GETATTR */
|
/* GETATTR */
|
||||||
int
|
int
|
||||||
nfs3svc_encode_getattrres(struct svc_rqst *rqstp, __be32 *p)
|
nfs3svc_encode_getattrres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nfsd3_attrstat *resp = rqstp->rq_resp;
|
struct nfsd3_attrstat *resp = rqstp->rq_resp;
|
||||||
|
|
||||||
if (!svcxdr_encode_nfsstat3(xdr, resp->status))
|
if (!svcxdr_encode_nfsstat3(xdr, resp->status))
|
||||||
@ -833,9 +832,8 @@ nfs3svc_encode_getattrres(struct svc_rqst *rqstp, __be32 *p)
|
|||||||
|
|
||||||
/* SETATTR, REMOVE, RMDIR */
|
/* SETATTR, REMOVE, RMDIR */
|
||||||
int
|
int
|
||||||
nfs3svc_encode_wccstat(struct svc_rqst *rqstp, __be32 *p)
|
nfs3svc_encode_wccstat(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nfsd3_attrstat *resp = rqstp->rq_resp;
|
struct nfsd3_attrstat *resp = rqstp->rq_resp;
|
||||||
|
|
||||||
return svcxdr_encode_nfsstat3(xdr, resp->status) &&
|
return svcxdr_encode_nfsstat3(xdr, resp->status) &&
|
||||||
@ -843,9 +841,9 @@ nfs3svc_encode_wccstat(struct svc_rqst *rqstp, __be32 *p)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* LOOKUP */
|
/* LOOKUP */
|
||||||
int nfs3svc_encode_lookupres(struct svc_rqst *rqstp, __be32 *p)
|
int
|
||||||
|
nfs3svc_encode_lookupres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nfsd3_diropres *resp = rqstp->rq_resp;
|
struct nfsd3_diropres *resp = rqstp->rq_resp;
|
||||||
|
|
||||||
if (!svcxdr_encode_nfsstat3(xdr, resp->status))
|
if (!svcxdr_encode_nfsstat3(xdr, resp->status))
|
||||||
@ -869,9 +867,8 @@ int nfs3svc_encode_lookupres(struct svc_rqst *rqstp, __be32 *p)
|
|||||||
|
|
||||||
/* ACCESS */
|
/* ACCESS */
|
||||||
int
|
int
|
||||||
nfs3svc_encode_accessres(struct svc_rqst *rqstp, __be32 *p)
|
nfs3svc_encode_accessres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nfsd3_accessres *resp = rqstp->rq_resp;
|
struct nfsd3_accessres *resp = rqstp->rq_resp;
|
||||||
|
|
||||||
if (!svcxdr_encode_nfsstat3(xdr, resp->status))
|
if (!svcxdr_encode_nfsstat3(xdr, resp->status))
|
||||||
@ -893,9 +890,8 @@ nfs3svc_encode_accessres(struct svc_rqst *rqstp, __be32 *p)
|
|||||||
|
|
||||||
/* READLINK */
|
/* READLINK */
|
||||||
int
|
int
|
||||||
nfs3svc_encode_readlinkres(struct svc_rqst *rqstp, __be32 *p)
|
nfs3svc_encode_readlinkres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nfsd3_readlinkres *resp = rqstp->rq_resp;
|
struct nfsd3_readlinkres *resp = rqstp->rq_resp;
|
||||||
struct kvec *head = rqstp->rq_res.head;
|
struct kvec *head = rqstp->rq_res.head;
|
||||||
|
|
||||||
@ -921,9 +917,8 @@ nfs3svc_encode_readlinkres(struct svc_rqst *rqstp, __be32 *p)
|
|||||||
|
|
||||||
/* READ */
|
/* READ */
|
||||||
int
|
int
|
||||||
nfs3svc_encode_readres(struct svc_rqst *rqstp, __be32 *p)
|
nfs3svc_encode_readres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nfsd3_readres *resp = rqstp->rq_resp;
|
struct nfsd3_readres *resp = rqstp->rq_resp;
|
||||||
struct kvec *head = rqstp->rq_res.head;
|
struct kvec *head = rqstp->rq_res.head;
|
||||||
|
|
||||||
@ -954,9 +949,8 @@ nfs3svc_encode_readres(struct svc_rqst *rqstp, __be32 *p)
|
|||||||
|
|
||||||
/* WRITE */
|
/* WRITE */
|
||||||
int
|
int
|
||||||
nfs3svc_encode_writeres(struct svc_rqst *rqstp, __be32 *p)
|
nfs3svc_encode_writeres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nfsd3_writeres *resp = rqstp->rq_resp;
|
struct nfsd3_writeres *resp = rqstp->rq_resp;
|
||||||
|
|
||||||
if (!svcxdr_encode_nfsstat3(xdr, resp->status))
|
if (!svcxdr_encode_nfsstat3(xdr, resp->status))
|
||||||
@ -982,9 +976,8 @@ nfs3svc_encode_writeres(struct svc_rqst *rqstp, __be32 *p)
|
|||||||
|
|
||||||
/* CREATE, MKDIR, SYMLINK, MKNOD */
|
/* CREATE, MKDIR, SYMLINK, MKNOD */
|
||||||
int
|
int
|
||||||
nfs3svc_encode_createres(struct svc_rqst *rqstp, __be32 *p)
|
nfs3svc_encode_createres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nfsd3_diropres *resp = rqstp->rq_resp;
|
struct nfsd3_diropres *resp = rqstp->rq_resp;
|
||||||
|
|
||||||
if (!svcxdr_encode_nfsstat3(xdr, resp->status))
|
if (!svcxdr_encode_nfsstat3(xdr, resp->status))
|
||||||
@ -1008,9 +1001,8 @@ nfs3svc_encode_createres(struct svc_rqst *rqstp, __be32 *p)
|
|||||||
|
|
||||||
/* RENAME */
|
/* RENAME */
|
||||||
int
|
int
|
||||||
nfs3svc_encode_renameres(struct svc_rqst *rqstp, __be32 *p)
|
nfs3svc_encode_renameres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nfsd3_renameres *resp = rqstp->rq_resp;
|
struct nfsd3_renameres *resp = rqstp->rq_resp;
|
||||||
|
|
||||||
return svcxdr_encode_nfsstat3(xdr, resp->status) &&
|
return svcxdr_encode_nfsstat3(xdr, resp->status) &&
|
||||||
@ -1020,9 +1012,8 @@ nfs3svc_encode_renameres(struct svc_rqst *rqstp, __be32 *p)
|
|||||||
|
|
||||||
/* LINK */
|
/* LINK */
|
||||||
int
|
int
|
||||||
nfs3svc_encode_linkres(struct svc_rqst *rqstp, __be32 *p)
|
nfs3svc_encode_linkres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nfsd3_linkres *resp = rqstp->rq_resp;
|
struct nfsd3_linkres *resp = rqstp->rq_resp;
|
||||||
|
|
||||||
return svcxdr_encode_nfsstat3(xdr, resp->status) &&
|
return svcxdr_encode_nfsstat3(xdr, resp->status) &&
|
||||||
@ -1032,9 +1023,8 @@ nfs3svc_encode_linkres(struct svc_rqst *rqstp, __be32 *p)
|
|||||||
|
|
||||||
/* READDIR */
|
/* READDIR */
|
||||||
int
|
int
|
||||||
nfs3svc_encode_readdirres(struct svc_rqst *rqstp, __be32 *p)
|
nfs3svc_encode_readdirres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nfsd3_readdirres *resp = rqstp->rq_resp;
|
struct nfsd3_readdirres *resp = rqstp->rq_resp;
|
||||||
struct xdr_buf *dirlist = &resp->dirlist;
|
struct xdr_buf *dirlist = &resp->dirlist;
|
||||||
|
|
||||||
@ -1286,9 +1276,8 @@ svcxdr_encode_fsstat3resok(struct xdr_stream *xdr,
|
|||||||
|
|
||||||
/* FSSTAT */
|
/* FSSTAT */
|
||||||
int
|
int
|
||||||
nfs3svc_encode_fsstatres(struct svc_rqst *rqstp, __be32 *p)
|
nfs3svc_encode_fsstatres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nfsd3_fsstatres *resp = rqstp->rq_resp;
|
struct nfsd3_fsstatres *resp = rqstp->rq_resp;
|
||||||
|
|
||||||
if (!svcxdr_encode_nfsstat3(xdr, resp->status))
|
if (!svcxdr_encode_nfsstat3(xdr, resp->status))
|
||||||
@ -1333,9 +1322,8 @@ svcxdr_encode_fsinfo3resok(struct xdr_stream *xdr,
|
|||||||
|
|
||||||
/* FSINFO */
|
/* FSINFO */
|
||||||
int
|
int
|
||||||
nfs3svc_encode_fsinfores(struct svc_rqst *rqstp, __be32 *p)
|
nfs3svc_encode_fsinfores(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nfsd3_fsinfores *resp = rqstp->rq_resp;
|
struct nfsd3_fsinfores *resp = rqstp->rq_resp;
|
||||||
|
|
||||||
if (!svcxdr_encode_nfsstat3(xdr, resp->status))
|
if (!svcxdr_encode_nfsstat3(xdr, resp->status))
|
||||||
@ -1376,9 +1364,8 @@ svcxdr_encode_pathconf3resok(struct xdr_stream *xdr,
|
|||||||
|
|
||||||
/* PATHCONF */
|
/* PATHCONF */
|
||||||
int
|
int
|
||||||
nfs3svc_encode_pathconfres(struct svc_rqst *rqstp, __be32 *p)
|
nfs3svc_encode_pathconfres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nfsd3_pathconfres *resp = rqstp->rq_resp;
|
struct nfsd3_pathconfres *resp = rqstp->rq_resp;
|
||||||
|
|
||||||
if (!svcxdr_encode_nfsstat3(xdr, resp->status))
|
if (!svcxdr_encode_nfsstat3(xdr, resp->status))
|
||||||
@ -1400,9 +1387,8 @@ nfs3svc_encode_pathconfres(struct svc_rqst *rqstp, __be32 *p)
|
|||||||
|
|
||||||
/* COMMIT */
|
/* COMMIT */
|
||||||
int
|
int
|
||||||
nfs3svc_encode_commitres(struct svc_rqst *rqstp, __be32 *p)
|
nfs3svc_encode_commitres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nfsd3_commitres *resp = rqstp->rq_resp;
|
struct nfsd3_commitres *resp = rqstp->rq_resp;
|
||||||
|
|
||||||
if (!svcxdr_encode_nfsstat3(xdr, resp->status))
|
if (!svcxdr_encode_nfsstat3(xdr, resp->status))
|
||||||
|
@ -5427,10 +5427,11 @@ nfs4svc_decode_compoundargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
nfs4svc_encode_compoundres(struct svc_rqst *rqstp, __be32 *p)
|
nfs4svc_encode_compoundres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct nfsd4_compoundres *resp = rqstp->rq_resp;
|
struct nfsd4_compoundres *resp = rqstp->rq_resp;
|
||||||
struct xdr_buf *buf = resp->xdr->buf;
|
struct xdr_buf *buf = xdr->buf;
|
||||||
|
__be32 *p;
|
||||||
|
|
||||||
WARN_ON_ONCE(buf->len != buf->head[0].iov_len + buf->page_len +
|
WARN_ON_ONCE(buf->len != buf->head[0].iov_len + buf->page_len +
|
||||||
buf->tail[0].iov_len);
|
buf->tail[0].iov_len);
|
||||||
@ -5443,7 +5444,7 @@ nfs4svc_encode_compoundres(struct svc_rqst *rqstp, __be32 *p)
|
|||||||
|
|
||||||
*p++ = resp->cstate.status;
|
*p++ = resp->cstate.status;
|
||||||
|
|
||||||
rqstp->rq_next_page = resp->xdr->page_ptr + 1;
|
rqstp->rq_next_page = xdr->page_ptr + 1;
|
||||||
|
|
||||||
*p++ = htonl(resp->taglen);
|
*p++ = htonl(resp->taglen);
|
||||||
memcpy(p, resp->tag, resp->taglen);
|
memcpy(p, resp->tag, resp->taglen);
|
||||||
|
@ -80,7 +80,8 @@ struct nfsd_voidargs { };
|
|||||||
struct nfsd_voidres { };
|
struct nfsd_voidres { };
|
||||||
bool nfssvc_decode_voidarg(struct svc_rqst *rqstp,
|
bool nfssvc_decode_voidarg(struct svc_rqst *rqstp,
|
||||||
struct xdr_stream *xdr);
|
struct xdr_stream *xdr);
|
||||||
int nfssvc_encode_voidres(struct svc_rqst *rqstp, __be32 *p);
|
int nfssvc_encode_voidres(struct svc_rqst *rqstp,
|
||||||
|
struct xdr_stream *xdr);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Function prototypes.
|
* Function prototypes.
|
||||||
|
@ -1004,8 +1004,6 @@ out:
|
|||||||
int nfsd_dispatch(struct svc_rqst *rqstp, __be32 *statp)
|
int nfsd_dispatch(struct svc_rqst *rqstp, __be32 *statp)
|
||||||
{
|
{
|
||||||
const struct svc_procedure *proc = rqstp->rq_procinfo;
|
const struct svc_procedure *proc = rqstp->rq_procinfo;
|
||||||
struct kvec *resv = &rqstp->rq_res.head[0];
|
|
||||||
__be32 *p;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Give the xdr decoder a chance to change this if it wants
|
* Give the xdr decoder a chance to change this if it wants
|
||||||
@ -1030,14 +1028,13 @@ int nfsd_dispatch(struct svc_rqst *rqstp, __be32 *statp)
|
|||||||
* Need to grab the location to store the status, as
|
* Need to grab the location to store the status, as
|
||||||
* NFSv4 does some encoding while processing
|
* NFSv4 does some encoding while processing
|
||||||
*/
|
*/
|
||||||
p = resv->iov_base + resv->iov_len;
|
|
||||||
svcxdr_init_encode(rqstp);
|
svcxdr_init_encode(rqstp);
|
||||||
|
|
||||||
*statp = proc->pc_func(rqstp);
|
*statp = proc->pc_func(rqstp);
|
||||||
if (*statp == rpc_drop_reply || test_bit(RQ_DROPME, &rqstp->rq_flags))
|
if (*statp == rpc_drop_reply || test_bit(RQ_DROPME, &rqstp->rq_flags))
|
||||||
goto out_update_drop;
|
goto out_update_drop;
|
||||||
|
|
||||||
if (!proc->pc_encode(rqstp, p))
|
if (!proc->pc_encode(rqstp, &rqstp->rq_res_stream))
|
||||||
goto out_encode_err;
|
goto out_encode_err;
|
||||||
|
|
||||||
nfsd_cache_update(rqstp, rqstp->rq_cachetype, statp + 1);
|
nfsd_cache_update(rqstp, rqstp->rq_cachetype, statp + 1);
|
||||||
@ -1078,13 +1075,13 @@ bool nfssvc_decode_voidarg(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
|||||||
/**
|
/**
|
||||||
* nfssvc_encode_voidres - Encode void results
|
* nfssvc_encode_voidres - Encode void results
|
||||||
* @rqstp: Server RPC transaction context
|
* @rqstp: Server RPC transaction context
|
||||||
* @p: buffer in which to encode results
|
* @xdr: XDR stream into which to encode results
|
||||||
*
|
*
|
||||||
* Return values:
|
* Return values:
|
||||||
* %0: Local error while encoding
|
* %0: Local error while encoding
|
||||||
* %1: Encoding was successful
|
* %1: Encoding was successful
|
||||||
*/
|
*/
|
||||||
int nfssvc_encode_voidres(struct svc_rqst *rqstp, __be32 *p)
|
int nfssvc_encode_voidres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -415,18 +415,16 @@ nfssvc_decode_readdirargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
int
|
int
|
||||||
nfssvc_encode_statres(struct svc_rqst *rqstp, __be32 *p)
|
nfssvc_encode_statres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nfsd_stat *resp = rqstp->rq_resp;
|
struct nfsd_stat *resp = rqstp->rq_resp;
|
||||||
|
|
||||||
return svcxdr_encode_stat(xdr, resp->status);
|
return svcxdr_encode_stat(xdr, resp->status);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
nfssvc_encode_attrstatres(struct svc_rqst *rqstp, __be32 *p)
|
nfssvc_encode_attrstatres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nfsd_attrstat *resp = rqstp->rq_resp;
|
struct nfsd_attrstat *resp = rqstp->rq_resp;
|
||||||
|
|
||||||
if (!svcxdr_encode_stat(xdr, resp->status))
|
if (!svcxdr_encode_stat(xdr, resp->status))
|
||||||
@ -442,9 +440,8 @@ nfssvc_encode_attrstatres(struct svc_rqst *rqstp, __be32 *p)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
nfssvc_encode_diropres(struct svc_rqst *rqstp, __be32 *p)
|
nfssvc_encode_diropres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nfsd_diropres *resp = rqstp->rq_resp;
|
struct nfsd_diropres *resp = rqstp->rq_resp;
|
||||||
|
|
||||||
if (!svcxdr_encode_stat(xdr, resp->status))
|
if (!svcxdr_encode_stat(xdr, resp->status))
|
||||||
@ -462,9 +459,8 @@ nfssvc_encode_diropres(struct svc_rqst *rqstp, __be32 *p)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
nfssvc_encode_readlinkres(struct svc_rqst *rqstp, __be32 *p)
|
nfssvc_encode_readlinkres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nfsd_readlinkres *resp = rqstp->rq_resp;
|
struct nfsd_readlinkres *resp = rqstp->rq_resp;
|
||||||
struct kvec *head = rqstp->rq_res.head;
|
struct kvec *head = rqstp->rq_res.head;
|
||||||
|
|
||||||
@ -484,9 +480,8 @@ nfssvc_encode_readlinkres(struct svc_rqst *rqstp, __be32 *p)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
nfssvc_encode_readres(struct svc_rqst *rqstp, __be32 *p)
|
nfssvc_encode_readres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nfsd_readres *resp = rqstp->rq_resp;
|
struct nfsd_readres *resp = rqstp->rq_resp;
|
||||||
struct kvec *head = rqstp->rq_res.head;
|
struct kvec *head = rqstp->rq_res.head;
|
||||||
|
|
||||||
@ -509,9 +504,8 @@ nfssvc_encode_readres(struct svc_rqst *rqstp, __be32 *p)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
nfssvc_encode_readdirres(struct svc_rqst *rqstp, __be32 *p)
|
nfssvc_encode_readdirres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nfsd_readdirres *resp = rqstp->rq_resp;
|
struct nfsd_readdirres *resp = rqstp->rq_resp;
|
||||||
struct xdr_buf *dirlist = &resp->dirlist;
|
struct xdr_buf *dirlist = &resp->dirlist;
|
||||||
|
|
||||||
@ -532,11 +526,11 @@ nfssvc_encode_readdirres(struct svc_rqst *rqstp, __be32 *p)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
nfssvc_encode_statfsres(struct svc_rqst *rqstp, __be32 *p)
|
nfssvc_encode_statfsres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
|
||||||
{
|
{
|
||||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
|
||||||
struct nfsd_statfsres *resp = rqstp->rq_resp;
|
struct nfsd_statfsres *resp = rqstp->rq_resp;
|
||||||
struct kstatfs *stat = &resp->stats;
|
struct kstatfs *stat = &resp->stats;
|
||||||
|
__be32 *p;
|
||||||
|
|
||||||
if (!svcxdr_encode_stat(xdr, resp->status))
|
if (!svcxdr_encode_stat(xdr, resp->status))
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -152,13 +152,13 @@ bool nfssvc_decode_linkargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
|||||||
bool nfssvc_decode_symlinkargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
bool nfssvc_decode_symlinkargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
bool nfssvc_decode_readdirargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
bool nfssvc_decode_readdirargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
|
|
||||||
int nfssvc_encode_statres(struct svc_rqst *, __be32 *);
|
int nfssvc_encode_statres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
int nfssvc_encode_attrstatres(struct svc_rqst *, __be32 *);
|
int nfssvc_encode_attrstatres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
int nfssvc_encode_diropres(struct svc_rqst *, __be32 *);
|
int nfssvc_encode_diropres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
int nfssvc_encode_readlinkres(struct svc_rqst *, __be32 *);
|
int nfssvc_encode_readlinkres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
int nfssvc_encode_readres(struct svc_rqst *, __be32 *);
|
int nfssvc_encode_readres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
int nfssvc_encode_statfsres(struct svc_rqst *, __be32 *);
|
int nfssvc_encode_statfsres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
int nfssvc_encode_readdirres(struct svc_rqst *, __be32 *);
|
int nfssvc_encode_readdirres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
|
|
||||||
void nfssvc_encode_nfscookie(struct nfsd_readdirres *resp, u32 offset);
|
void nfssvc_encode_nfscookie(struct nfsd_readdirres *resp, u32 offset);
|
||||||
int nfssvc_encode_entry(void *data, const char *name, int namlen,
|
int nfssvc_encode_entry(void *data, const char *name, int namlen,
|
||||||
|
@ -281,21 +281,21 @@ bool nfs3svc_decode_readdirargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
|||||||
bool nfs3svc_decode_readdirplusargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
bool nfs3svc_decode_readdirplusargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
bool nfs3svc_decode_commitargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
bool nfs3svc_decode_commitargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
|
|
||||||
int nfs3svc_encode_getattrres(struct svc_rqst *, __be32 *);
|
int nfs3svc_encode_getattrres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
int nfs3svc_encode_wccstat(struct svc_rqst *, __be32 *);
|
int nfs3svc_encode_wccstat(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
int nfs3svc_encode_lookupres(struct svc_rqst *, __be32 *);
|
int nfs3svc_encode_lookupres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
int nfs3svc_encode_accessres(struct svc_rqst *, __be32 *);
|
int nfs3svc_encode_accessres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
int nfs3svc_encode_readlinkres(struct svc_rqst *, __be32 *);
|
int nfs3svc_encode_readlinkres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
int nfs3svc_encode_readres(struct svc_rqst *, __be32 *);
|
int nfs3svc_encode_readres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
int nfs3svc_encode_writeres(struct svc_rqst *, __be32 *);
|
int nfs3svc_encode_writeres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
int nfs3svc_encode_createres(struct svc_rqst *, __be32 *);
|
int nfs3svc_encode_createres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
int nfs3svc_encode_renameres(struct svc_rqst *, __be32 *);
|
int nfs3svc_encode_renameres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
int nfs3svc_encode_linkres(struct svc_rqst *, __be32 *);
|
int nfs3svc_encode_linkres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
int nfs3svc_encode_readdirres(struct svc_rqst *, __be32 *);
|
int nfs3svc_encode_readdirres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
int nfs3svc_encode_fsstatres(struct svc_rqst *, __be32 *);
|
int nfs3svc_encode_fsstatres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
int nfs3svc_encode_fsinfores(struct svc_rqst *, __be32 *);
|
int nfs3svc_encode_fsinfores(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
int nfs3svc_encode_pathconfres(struct svc_rqst *, __be32 *);
|
int nfs3svc_encode_pathconfres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
int nfs3svc_encode_commitres(struct svc_rqst *, __be32 *);
|
int nfs3svc_encode_commitres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
|
|
||||||
void nfs3svc_release_fhandle(struct svc_rqst *);
|
void nfs3svc_release_fhandle(struct svc_rqst *);
|
||||||
void nfs3svc_release_fhandle2(struct svc_rqst *);
|
void nfs3svc_release_fhandle2(struct svc_rqst *);
|
||||||
|
@ -758,7 +758,7 @@ set_change_info(struct nfsd4_change_info *cinfo, struct svc_fh *fhp)
|
|||||||
|
|
||||||
bool nfsd4_mach_creds_match(struct nfs4_client *cl, struct svc_rqst *rqstp);
|
bool nfsd4_mach_creds_match(struct nfs4_client *cl, struct svc_rqst *rqstp);
|
||||||
bool nfs4svc_decode_compoundargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
bool nfs4svc_decode_compoundargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
int nfs4svc_encode_compoundres(struct svc_rqst *, __be32 *);
|
int nfs4svc_encode_compoundres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
__be32 nfsd4_check_resp_size(struct nfsd4_compoundres *, u32);
|
__be32 nfsd4_check_resp_size(struct nfsd4_compoundres *, u32);
|
||||||
void nfsd4_encode_operation(struct nfsd4_compoundres *, struct nfsd4_op *);
|
void nfsd4_encode_operation(struct nfsd4_compoundres *, struct nfsd4_op *);
|
||||||
void nfsd4_encode_replay(struct xdr_stream *xdr, struct nfsd4_op *op);
|
void nfsd4_encode_replay(struct xdr_stream *xdr, struct nfsd4_op *op);
|
||||||
|
@ -106,9 +106,9 @@ bool nlmsvc_decode_reboot(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
|||||||
bool nlmsvc_decode_shareargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
bool nlmsvc_decode_shareargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
bool nlmsvc_decode_notify(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
bool nlmsvc_decode_notify(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
|
|
||||||
int nlmsvc_encode_testres(struct svc_rqst *, __be32 *);
|
int nlmsvc_encode_testres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
int nlmsvc_encode_res(struct svc_rqst *, __be32 *);
|
int nlmsvc_encode_res(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
int nlmsvc_encode_void(struct svc_rqst *, __be32 *);
|
int nlmsvc_encode_void(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
int nlmsvc_encode_shareres(struct svc_rqst *, __be32 *);
|
int nlmsvc_encode_shareres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
|
|
||||||
#endif /* LOCKD_XDR_H */
|
#endif /* LOCKD_XDR_H */
|
||||||
|
@ -32,10 +32,10 @@ bool nlm4svc_decode_reboot(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
|||||||
bool nlm4svc_decode_shareargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
bool nlm4svc_decode_shareargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
bool nlm4svc_decode_notify(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
bool nlm4svc_decode_notify(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
|
|
||||||
int nlm4svc_encode_testres(struct svc_rqst *, __be32 *);
|
int nlm4svc_encode_testres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
int nlm4svc_encode_res(struct svc_rqst *, __be32 *);
|
int nlm4svc_encode_res(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
int nlm4svc_encode_void(struct svc_rqst *, __be32 *);
|
int nlm4svc_encode_void(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
int nlm4svc_encode_shareres(struct svc_rqst *, __be32 *);
|
int nlm4svc_encode_shareres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
|
||||||
|
|
||||||
extern const struct rpc_version nlm_version4;
|
extern const struct rpc_version nlm_version4;
|
||||||
|
|
||||||
|
@ -457,7 +457,8 @@ struct svc_procedure {
|
|||||||
bool (*pc_decode)(struct svc_rqst *rqstp,
|
bool (*pc_decode)(struct svc_rqst *rqstp,
|
||||||
struct xdr_stream *xdr);
|
struct xdr_stream *xdr);
|
||||||
/* XDR encode result: */
|
/* XDR encode result: */
|
||||||
int (*pc_encode)(struct svc_rqst *, __be32 *data);
|
int (*pc_encode)(struct svc_rqst *rqstp,
|
||||||
|
struct xdr_stream *xdr);
|
||||||
/* XDR free result: */
|
/* XDR free result: */
|
||||||
void (*pc_release)(struct svc_rqst *);
|
void (*pc_release)(struct svc_rqst *);
|
||||||
unsigned int pc_argsize; /* argument struct size */
|
unsigned int pc_argsize; /* argument struct size */
|
||||||
|
Loading…
Reference in New Issue
Block a user