mirror of
https://github.com/torvalds/linux.git
synced 2024-11-28 15:11:31 +00:00
NFSD: Add common helpers to decode void args and encode void results
Start off the conversion to xdr_stream by de-duplicating the functions that decode void arguments and encode void results. Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
This commit is contained in:
parent
5191955d6f
commit
788f7183fb
@ -185,10 +185,6 @@ out:
|
|||||||
/*
|
/*
|
||||||
* XDR decode functions
|
* XDR decode functions
|
||||||
*/
|
*/
|
||||||
static int nfsaclsvc_decode_voidarg(struct svc_rqst *rqstp, __be32 *p)
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int nfsaclsvc_decode_getaclargs(struct svc_rqst *rqstp, __be32 *p)
|
static int nfsaclsvc_decode_getaclargs(struct svc_rqst *rqstp, __be32 *p)
|
||||||
{
|
{
|
||||||
@ -255,15 +251,6 @@ static int nfsaclsvc_decode_accessargs(struct svc_rqst *rqstp, __be32 *p)
|
|||||||
* XDR encode functions
|
* XDR encode functions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* There must be an encoding function for void results so svc_process
|
|
||||||
* will work properly.
|
|
||||||
*/
|
|
||||||
static int nfsaclsvc_encode_voidres(struct svc_rqst *rqstp, __be32 *p)
|
|
||||||
{
|
|
||||||
return xdr_ressize_check(rqstp, p);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* GETACL */
|
/* GETACL */
|
||||||
static int nfsaclsvc_encode_getaclres(struct svc_rqst *rqstp, __be32 *p)
|
static int nfsaclsvc_encode_getaclres(struct svc_rqst *rqstp, __be32 *p)
|
||||||
{
|
{
|
||||||
@ -378,10 +365,10 @@ struct nfsd3_voidargs { int dummy; };
|
|||||||
static const struct svc_procedure nfsd_acl_procedures2[5] = {
|
static const struct svc_procedure nfsd_acl_procedures2[5] = {
|
||||||
[ACLPROC2_NULL] = {
|
[ACLPROC2_NULL] = {
|
||||||
.pc_func = nfsacld_proc_null,
|
.pc_func = nfsacld_proc_null,
|
||||||
.pc_decode = nfsaclsvc_decode_voidarg,
|
.pc_decode = nfssvc_decode_voidarg,
|
||||||
.pc_encode = nfsaclsvc_encode_voidres,
|
.pc_encode = nfssvc_encode_voidres,
|
||||||
.pc_argsize = sizeof(struct nfsd3_voidargs),
|
.pc_argsize = sizeof(struct nfsd_voidargs),
|
||||||
.pc_ressize = sizeof(struct nfsd3_voidargs),
|
.pc_ressize = sizeof(struct nfsd_voidres),
|
||||||
.pc_cachetype = RC_NOCACHE,
|
.pc_cachetype = RC_NOCACHE,
|
||||||
.pc_xdrressize = ST,
|
.pc_xdrressize = ST,
|
||||||
},
|
},
|
||||||
|
@ -245,10 +245,10 @@ struct nfsd3_voidargs { int dummy; };
|
|||||||
static const struct svc_procedure nfsd_acl_procedures3[3] = {
|
static const struct svc_procedure nfsd_acl_procedures3[3] = {
|
||||||
[ACLPROC3_NULL] = {
|
[ACLPROC3_NULL] = {
|
||||||
.pc_func = nfsd3_proc_null,
|
.pc_func = nfsd3_proc_null,
|
||||||
.pc_decode = nfs3svc_decode_voidarg,
|
.pc_decode = nfssvc_decode_voidarg,
|
||||||
.pc_encode = nfs3svc_encode_voidres,
|
.pc_encode = nfssvc_encode_voidres,
|
||||||
.pc_argsize = sizeof(struct nfsd3_voidargs),
|
.pc_argsize = sizeof(struct nfsd_voidargs),
|
||||||
.pc_ressize = sizeof(struct nfsd3_voidargs),
|
.pc_ressize = sizeof(struct nfsd_voidres),
|
||||||
.pc_cachetype = RC_NOCACHE,
|
.pc_cachetype = RC_NOCACHE,
|
||||||
.pc_xdrressize = ST,
|
.pc_xdrressize = ST,
|
||||||
},
|
},
|
||||||
|
@ -692,8 +692,6 @@ out:
|
|||||||
#define nfsd3_attrstatres nfsd3_attrstat
|
#define nfsd3_attrstatres nfsd3_attrstat
|
||||||
#define nfsd3_wccstatres nfsd3_attrstat
|
#define nfsd3_wccstatres nfsd3_attrstat
|
||||||
#define nfsd3_createres nfsd3_diropres
|
#define nfsd3_createres nfsd3_diropres
|
||||||
#define nfsd3_voidres nfsd3_voidargs
|
|
||||||
struct nfsd3_voidargs { int dummy; };
|
|
||||||
|
|
||||||
#define ST 1 /* status*/
|
#define ST 1 /* status*/
|
||||||
#define FH 17 /* filehandle with length */
|
#define FH 17 /* filehandle with length */
|
||||||
@ -704,10 +702,10 @@ struct nfsd3_voidargs { int dummy; };
|
|||||||
static const struct svc_procedure nfsd_procedures3[22] = {
|
static const struct svc_procedure nfsd_procedures3[22] = {
|
||||||
[NFS3PROC_NULL] = {
|
[NFS3PROC_NULL] = {
|
||||||
.pc_func = nfsd3_proc_null,
|
.pc_func = nfsd3_proc_null,
|
||||||
.pc_decode = nfs3svc_decode_voidarg,
|
.pc_decode = nfssvc_decode_voidarg,
|
||||||
.pc_encode = nfs3svc_encode_voidres,
|
.pc_encode = nfssvc_encode_voidres,
|
||||||
.pc_argsize = sizeof(struct nfsd3_voidargs),
|
.pc_argsize = sizeof(struct nfsd_voidargs),
|
||||||
.pc_ressize = sizeof(struct nfsd3_voidres),
|
.pc_ressize = sizeof(struct nfsd_voidres),
|
||||||
.pc_cachetype = RC_NOCACHE,
|
.pc_cachetype = RC_NOCACHE,
|
||||||
.pc_xdrressize = ST,
|
.pc_xdrressize = ST,
|
||||||
},
|
},
|
||||||
|
@ -304,11 +304,6 @@ void fill_post_wcc(struct svc_fh *fhp)
|
|||||||
/*
|
/*
|
||||||
* XDR decode functions
|
* XDR decode functions
|
||||||
*/
|
*/
|
||||||
int
|
|
||||||
nfs3svc_decode_voidarg(struct svc_rqst *rqstp, __be32 *p)
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
int
|
||||||
nfs3svc_decode_fhandle(struct svc_rqst *rqstp, __be32 *p)
|
nfs3svc_decode_fhandle(struct svc_rqst *rqstp, __be32 *p)
|
||||||
@ -642,12 +637,6 @@ nfs3svc_decode_commitargs(struct svc_rqst *rqstp, __be32 *p)
|
|||||||
* XDR encode functions
|
* XDR encode functions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int
|
|
||||||
nfs3svc_encode_voidres(struct svc_rqst *rqstp, __be32 *p)
|
|
||||||
{
|
|
||||||
return xdr_ressize_check(rqstp, p);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* GETATTR */
|
/* GETATTR */
|
||||||
int
|
int
|
||||||
nfs3svc_encode_attrstat(struct svc_rqst *rqstp, __be32 *p)
|
nfs3svc_encode_attrstat(struct svc_rqst *rqstp, __be32 *p)
|
||||||
|
@ -3295,16 +3295,13 @@ static const char *nfsd4_op_name(unsigned opnum)
|
|||||||
return "unknown_operation";
|
return "unknown_operation";
|
||||||
}
|
}
|
||||||
|
|
||||||
#define nfsd4_voidres nfsd4_voidargs
|
|
||||||
struct nfsd4_voidargs { int dummy; };
|
|
||||||
|
|
||||||
static const struct svc_procedure nfsd_procedures4[2] = {
|
static const struct svc_procedure nfsd_procedures4[2] = {
|
||||||
[NFSPROC4_NULL] = {
|
[NFSPROC4_NULL] = {
|
||||||
.pc_func = nfsd4_proc_null,
|
.pc_func = nfsd4_proc_null,
|
||||||
.pc_decode = nfs4svc_decode_voidarg,
|
.pc_decode = nfssvc_decode_voidarg,
|
||||||
.pc_encode = nfs4svc_encode_voidres,
|
.pc_encode = nfssvc_encode_voidres,
|
||||||
.pc_argsize = sizeof(struct nfsd4_voidargs),
|
.pc_argsize = sizeof(struct nfsd_voidargs),
|
||||||
.pc_ressize = sizeof(struct nfsd4_voidres),
|
.pc_ressize = sizeof(struct nfsd_voidres),
|
||||||
.pc_cachetype = RC_NOCACHE,
|
.pc_cachetype = RC_NOCACHE,
|
||||||
.pc_xdrressize = 1,
|
.pc_xdrressize = 1,
|
||||||
},
|
},
|
||||||
|
@ -5271,12 +5271,6 @@ nfsd4_encode_replay(struct xdr_stream *xdr, struct nfsd4_op *op)
|
|||||||
p = xdr_encode_opaque_fixed(p, rp->rp_buf, rp->rp_buflen);
|
p = xdr_encode_opaque_fixed(p, rp->rp_buf, rp->rp_buflen);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
|
||||||
nfs4svc_encode_voidres(struct svc_rqst *rqstp, __be32 *p)
|
|
||||||
{
|
|
||||||
return xdr_ressize_check(rqstp, p);
|
|
||||||
}
|
|
||||||
|
|
||||||
void nfsd4_release_compoundargs(struct svc_rqst *rqstp)
|
void nfsd4_release_compoundargs(struct svc_rqst *rqstp)
|
||||||
{
|
{
|
||||||
struct nfsd4_compoundargs *args = rqstp->rq_argp;
|
struct nfsd4_compoundargs *args = rqstp->rq_argp;
|
||||||
@ -5294,12 +5288,6 @@ void nfsd4_release_compoundargs(struct svc_rqst *rqstp)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
|
||||||
nfs4svc_decode_voidarg(struct svc_rqst *rqstp, __be32 *p)
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
int
|
||||||
nfs4svc_decode_compoundargs(struct svc_rqst *rqstp, __be32 *p)
|
nfs4svc_decode_compoundargs(struct svc_rqst *rqstp, __be32 *p)
|
||||||
{
|
{
|
||||||
|
@ -73,6 +73,14 @@ extern unsigned long nfsd_drc_mem_used;
|
|||||||
|
|
||||||
extern const struct seq_operations nfs_exports_op;
|
extern const struct seq_operations nfs_exports_op;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Common void argument and result helpers
|
||||||
|
*/
|
||||||
|
struct nfsd_voidargs { };
|
||||||
|
struct nfsd_voidres { };
|
||||||
|
int nfssvc_decode_voidarg(struct svc_rqst *rqstp, __be32 *p);
|
||||||
|
int nfssvc_encode_voidres(struct svc_rqst *rqstp, __be32 *p);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Function prototypes.
|
* Function prototypes.
|
||||||
*/
|
*/
|
||||||
|
@ -609,7 +609,6 @@ nfsd_proc_statfs(struct svc_rqst *rqstp)
|
|||||||
* NFSv2 Server procedures.
|
* NFSv2 Server procedures.
|
||||||
* Only the results of non-idempotent operations are cached.
|
* Only the results of non-idempotent operations are cached.
|
||||||
*/
|
*/
|
||||||
struct nfsd_void { int dummy; };
|
|
||||||
|
|
||||||
#define ST 1 /* status */
|
#define ST 1 /* status */
|
||||||
#define FH 8 /* filehandle */
|
#define FH 8 /* filehandle */
|
||||||
@ -618,10 +617,10 @@ struct nfsd_void { int dummy; };
|
|||||||
static const struct svc_procedure nfsd_procedures2[18] = {
|
static const struct svc_procedure nfsd_procedures2[18] = {
|
||||||
[NFSPROC_NULL] = {
|
[NFSPROC_NULL] = {
|
||||||
.pc_func = nfsd_proc_null,
|
.pc_func = nfsd_proc_null,
|
||||||
.pc_decode = nfssvc_decode_void,
|
.pc_decode = nfssvc_decode_voidarg,
|
||||||
.pc_encode = nfssvc_encode_void,
|
.pc_encode = nfssvc_encode_voidres,
|
||||||
.pc_argsize = sizeof(struct nfsd_void),
|
.pc_argsize = sizeof(struct nfsd_voidargs),
|
||||||
.pc_ressize = sizeof(struct nfsd_void),
|
.pc_ressize = sizeof(struct nfsd_voidres),
|
||||||
.pc_cachetype = RC_NOCACHE,
|
.pc_cachetype = RC_NOCACHE,
|
||||||
.pc_xdrressize = 0,
|
.pc_xdrressize = 0,
|
||||||
},
|
},
|
||||||
@ -647,10 +646,10 @@ static const struct svc_procedure nfsd_procedures2[18] = {
|
|||||||
},
|
},
|
||||||
[NFSPROC_ROOT] = {
|
[NFSPROC_ROOT] = {
|
||||||
.pc_func = nfsd_proc_root,
|
.pc_func = nfsd_proc_root,
|
||||||
.pc_decode = nfssvc_decode_void,
|
.pc_decode = nfssvc_decode_voidarg,
|
||||||
.pc_encode = nfssvc_encode_void,
|
.pc_encode = nfssvc_encode_voidres,
|
||||||
.pc_argsize = sizeof(struct nfsd_void),
|
.pc_argsize = sizeof(struct nfsd_voidargs),
|
||||||
.pc_ressize = sizeof(struct nfsd_void),
|
.pc_ressize = sizeof(struct nfsd_voidres),
|
||||||
.pc_cachetype = RC_NOCACHE,
|
.pc_cachetype = RC_NOCACHE,
|
||||||
.pc_xdrressize = 0,
|
.pc_xdrressize = 0,
|
||||||
},
|
},
|
||||||
@ -685,10 +684,10 @@ static const struct svc_procedure nfsd_procedures2[18] = {
|
|||||||
},
|
},
|
||||||
[NFSPROC_WRITECACHE] = {
|
[NFSPROC_WRITECACHE] = {
|
||||||
.pc_func = nfsd_proc_writecache,
|
.pc_func = nfsd_proc_writecache,
|
||||||
.pc_decode = nfssvc_decode_void,
|
.pc_decode = nfssvc_decode_voidarg,
|
||||||
.pc_encode = nfssvc_encode_void,
|
.pc_encode = nfssvc_encode_voidres,
|
||||||
.pc_argsize = sizeof(struct nfsd_void),
|
.pc_argsize = sizeof(struct nfsd_voidargs),
|
||||||
.pc_ressize = sizeof(struct nfsd_void),
|
.pc_ressize = sizeof(struct nfsd_voidres),
|
||||||
.pc_cachetype = RC_NOCACHE,
|
.pc_cachetype = RC_NOCACHE,
|
||||||
.pc_xdrressize = 0,
|
.pc_xdrressize = 0,
|
||||||
},
|
},
|
||||||
|
@ -1075,6 +1075,34 @@ out_encode_err:
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* nfssvc_decode_voidarg - Decode void arguments
|
||||||
|
* @rqstp: Server RPC transaction context
|
||||||
|
* @p: buffer containing arguments to decode
|
||||||
|
*
|
||||||
|
* Return values:
|
||||||
|
* %0: Arguments were not valid
|
||||||
|
* %1: Decoding was successful
|
||||||
|
*/
|
||||||
|
int nfssvc_decode_voidarg(struct svc_rqst *rqstp, __be32 *p)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* nfssvc_encode_voidres - Encode void results
|
||||||
|
* @rqstp: Server RPC transaction context
|
||||||
|
* @p: buffer in which to encode results
|
||||||
|
*
|
||||||
|
* Return values:
|
||||||
|
* %0: Local error while encoding
|
||||||
|
* %1: Encoding was successful
|
||||||
|
*/
|
||||||
|
int nfssvc_encode_voidres(struct svc_rqst *rqstp, __be32 *p)
|
||||||
|
{
|
||||||
|
return xdr_ressize_check(rqstp, p);
|
||||||
|
}
|
||||||
|
|
||||||
int nfsd_pool_stats_open(struct inode *inode, struct file *file)
|
int nfsd_pool_stats_open(struct inode *inode, struct file *file)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
@ -192,11 +192,6 @@ __be32 *nfs2svc_encode_fattr(struct svc_rqst *rqstp, __be32 *p, struct svc_fh *f
|
|||||||
/*
|
/*
|
||||||
* XDR decode functions
|
* XDR decode functions
|
||||||
*/
|
*/
|
||||||
int
|
|
||||||
nfssvc_decode_void(struct svc_rqst *rqstp, __be32 *p)
|
|
||||||
{
|
|
||||||
return xdr_argsize_check(rqstp, p);
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
int
|
||||||
nfssvc_decode_fhandle(struct svc_rqst *rqstp, __be32 *p)
|
nfssvc_decode_fhandle(struct svc_rqst *rqstp, __be32 *p)
|
||||||
@ -423,11 +418,6 @@ nfssvc_decode_readdirargs(struct svc_rqst *rqstp, __be32 *p)
|
|||||||
/*
|
/*
|
||||||
* XDR encode functions
|
* XDR encode functions
|
||||||
*/
|
*/
|
||||||
int
|
|
||||||
nfssvc_encode_void(struct svc_rqst *rqstp, __be32 *p)
|
|
||||||
{
|
|
||||||
return xdr_ressize_check(rqstp, p);
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
int
|
||||||
nfssvc_encode_stat(struct svc_rqst *rqstp, __be32 *p)
|
nfssvc_encode_stat(struct svc_rqst *rqstp, __be32 *p)
|
||||||
|
@ -144,7 +144,6 @@ union nfsd_xdrstore {
|
|||||||
#define NFS2_SVC_XDRSIZE sizeof(union nfsd_xdrstore)
|
#define NFS2_SVC_XDRSIZE sizeof(union nfsd_xdrstore)
|
||||||
|
|
||||||
|
|
||||||
int nfssvc_decode_void(struct svc_rqst *, __be32 *);
|
|
||||||
int nfssvc_decode_fhandle(struct svc_rqst *, __be32 *);
|
int nfssvc_decode_fhandle(struct svc_rqst *, __be32 *);
|
||||||
int nfssvc_decode_sattrargs(struct svc_rqst *, __be32 *);
|
int nfssvc_decode_sattrargs(struct svc_rqst *, __be32 *);
|
||||||
int nfssvc_decode_diropargs(struct svc_rqst *, __be32 *);
|
int nfssvc_decode_diropargs(struct svc_rqst *, __be32 *);
|
||||||
@ -156,7 +155,6 @@ int nfssvc_decode_readlinkargs(struct svc_rqst *, __be32 *);
|
|||||||
int nfssvc_decode_linkargs(struct svc_rqst *, __be32 *);
|
int nfssvc_decode_linkargs(struct svc_rqst *, __be32 *);
|
||||||
int nfssvc_decode_symlinkargs(struct svc_rqst *, __be32 *);
|
int nfssvc_decode_symlinkargs(struct svc_rqst *, __be32 *);
|
||||||
int nfssvc_decode_readdirargs(struct svc_rqst *, __be32 *);
|
int nfssvc_decode_readdirargs(struct svc_rqst *, __be32 *);
|
||||||
int nfssvc_encode_void(struct svc_rqst *, __be32 *);
|
|
||||||
int nfssvc_encode_stat(struct svc_rqst *, __be32 *);
|
int nfssvc_encode_stat(struct svc_rqst *, __be32 *);
|
||||||
int nfssvc_encode_attrstat(struct svc_rqst *, __be32 *);
|
int nfssvc_encode_attrstat(struct svc_rqst *, __be32 *);
|
||||||
int nfssvc_encode_diropres(struct svc_rqst *, __be32 *);
|
int nfssvc_encode_diropres(struct svc_rqst *, __be32 *);
|
||||||
|
@ -273,7 +273,6 @@ union nfsd3_xdrstore {
|
|||||||
|
|
||||||
#define NFS3_SVC_XDRSIZE sizeof(union nfsd3_xdrstore)
|
#define NFS3_SVC_XDRSIZE sizeof(union nfsd3_xdrstore)
|
||||||
|
|
||||||
int nfs3svc_decode_voidarg(struct svc_rqst *, __be32 *);
|
|
||||||
int nfs3svc_decode_fhandle(struct svc_rqst *, __be32 *);
|
int nfs3svc_decode_fhandle(struct svc_rqst *, __be32 *);
|
||||||
int nfs3svc_decode_sattrargs(struct svc_rqst *, __be32 *);
|
int nfs3svc_decode_sattrargs(struct svc_rqst *, __be32 *);
|
||||||
int nfs3svc_decode_diropargs(struct svc_rqst *, __be32 *);
|
int nfs3svc_decode_diropargs(struct svc_rqst *, __be32 *);
|
||||||
@ -290,7 +289,6 @@ int nfs3svc_decode_symlinkargs(struct svc_rqst *, __be32 *);
|
|||||||
int nfs3svc_decode_readdirargs(struct svc_rqst *, __be32 *);
|
int nfs3svc_decode_readdirargs(struct svc_rqst *, __be32 *);
|
||||||
int nfs3svc_decode_readdirplusargs(struct svc_rqst *, __be32 *);
|
int nfs3svc_decode_readdirplusargs(struct svc_rqst *, __be32 *);
|
||||||
int nfs3svc_decode_commitargs(struct svc_rqst *, __be32 *);
|
int nfs3svc_decode_commitargs(struct svc_rqst *, __be32 *);
|
||||||
int nfs3svc_encode_voidres(struct svc_rqst *, __be32 *);
|
|
||||||
int nfs3svc_encode_attrstat(struct svc_rqst *, __be32 *);
|
int nfs3svc_encode_attrstat(struct svc_rqst *, __be32 *);
|
||||||
int nfs3svc_encode_wccstat(struct svc_rqst *, __be32 *);
|
int nfs3svc_encode_wccstat(struct svc_rqst *, __be32 *);
|
||||||
int nfs3svc_encode_diropres(struct svc_rqst *, __be32 *);
|
int nfs3svc_encode_diropres(struct svc_rqst *, __be32 *);
|
||||||
|
@ -781,8 +781,6 @@ 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);
|
||||||
int nfs4svc_decode_voidarg(struct svc_rqst *, __be32 *);
|
|
||||||
int nfs4svc_encode_voidres(struct svc_rqst *, __be32 *);
|
|
||||||
int nfs4svc_decode_compoundargs(struct svc_rqst *, __be32 *);
|
int nfs4svc_decode_compoundargs(struct svc_rqst *, __be32 *);
|
||||||
int nfs4svc_encode_compoundres(struct svc_rqst *, __be32 *);
|
int nfs4svc_encode_compoundres(struct svc_rqst *, __be32 *);
|
||||||
__be32 nfsd4_check_resp_size(struct nfsd4_compoundres *, u32);
|
__be32 nfsd4_check_resp_size(struct nfsd4_compoundres *, u32);
|
||||||
|
Loading…
Reference in New Issue
Block a user