mirror of https://gitee.com/openkylin/linux.git
NFSD: Update the NFSv2 stat encoder to use struct xdr_stream
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
This commit is contained in:
parent
76ed0dd96e
commit
a887eaed2a
|
@ -736,7 +736,7 @@ static const struct svc_procedure nfsd_procedures2[18] = {
|
|||
[NFSPROC_REMOVE] = {
|
||||
.pc_func = nfsd_proc_remove,
|
||||
.pc_decode = nfssvc_decode_diropargs,
|
||||
.pc_encode = nfssvc_encode_stat,
|
||||
.pc_encode = nfssvc_encode_statres,
|
||||
.pc_argsize = sizeof(struct nfsd_diropargs),
|
||||
.pc_ressize = sizeof(struct nfsd_stat),
|
||||
.pc_cachetype = RC_REPLSTAT,
|
||||
|
@ -746,7 +746,7 @@ static const struct svc_procedure nfsd_procedures2[18] = {
|
|||
[NFSPROC_RENAME] = {
|
||||
.pc_func = nfsd_proc_rename,
|
||||
.pc_decode = nfssvc_decode_renameargs,
|
||||
.pc_encode = nfssvc_encode_stat,
|
||||
.pc_encode = nfssvc_encode_statres,
|
||||
.pc_argsize = sizeof(struct nfsd_renameargs),
|
||||
.pc_ressize = sizeof(struct nfsd_stat),
|
||||
.pc_cachetype = RC_REPLSTAT,
|
||||
|
@ -756,7 +756,7 @@ static const struct svc_procedure nfsd_procedures2[18] = {
|
|||
[NFSPROC_LINK] = {
|
||||
.pc_func = nfsd_proc_link,
|
||||
.pc_decode = nfssvc_decode_linkargs,
|
||||
.pc_encode = nfssvc_encode_stat,
|
||||
.pc_encode = nfssvc_encode_statres,
|
||||
.pc_argsize = sizeof(struct nfsd_linkargs),
|
||||
.pc_ressize = sizeof(struct nfsd_stat),
|
||||
.pc_cachetype = RC_REPLSTAT,
|
||||
|
@ -766,7 +766,7 @@ static const struct svc_procedure nfsd_procedures2[18] = {
|
|||
[NFSPROC_SYMLINK] = {
|
||||
.pc_func = nfsd_proc_symlink,
|
||||
.pc_decode = nfssvc_decode_symlinkargs,
|
||||
.pc_encode = nfssvc_encode_stat,
|
||||
.pc_encode = nfssvc_encode_statres,
|
||||
.pc_argsize = sizeof(struct nfsd_symlinkargs),
|
||||
.pc_ressize = sizeof(struct nfsd_stat),
|
||||
.pc_cachetype = RC_REPLSTAT,
|
||||
|
@ -787,7 +787,7 @@ static const struct svc_procedure nfsd_procedures2[18] = {
|
|||
[NFSPROC_RMDIR] = {
|
||||
.pc_func = nfsd_proc_rmdir,
|
||||
.pc_decode = nfssvc_decode_diropargs,
|
||||
.pc_encode = nfssvc_encode_stat,
|
||||
.pc_encode = nfssvc_encode_statres,
|
||||
.pc_argsize = sizeof(struct nfsd_diropargs),
|
||||
.pc_ressize = sizeof(struct nfsd_stat),
|
||||
.pc_cachetype = RC_REPLSTAT,
|
||||
|
|
|
@ -26,6 +26,19 @@ static u32 nfs_ftypes[] = {
|
|||
* Basic NFSv2 data types (RFC 1094 Section 2.3)
|
||||
*/
|
||||
|
||||
static bool
|
||||
svcxdr_encode_stat(struct xdr_stream *xdr, __be32 status)
|
||||
{
|
||||
__be32 *p;
|
||||
|
||||
p = xdr_reserve_space(xdr, sizeof(status));
|
||||
if (!p)
|
||||
return false;
|
||||
*p = status;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* svcxdr_decode_fhandle - Decode an NFSv2 file handle
|
||||
* @xdr: XDR stream positioned at an encoded NFSv2 FH
|
||||
|
@ -390,12 +403,12 @@ nfssvc_decode_readdirargs(struct svc_rqst *rqstp, __be32 *p)
|
|||
*/
|
||||
|
||||
int
|
||||
nfssvc_encode_stat(struct svc_rqst *rqstp, __be32 *p)
|
||||
nfssvc_encode_statres(struct svc_rqst *rqstp, __be32 *p)
|
||||
{
|
||||
struct xdr_stream *xdr = &rqstp->rq_res_stream;
|
||||
struct nfsd_stat *resp = rqstp->rq_resp;
|
||||
|
||||
*p++ = resp->status;
|
||||
return xdr_ressize_check(rqstp, p);
|
||||
return svcxdr_encode_stat(xdr, resp->status);
|
||||
}
|
||||
|
||||
int
|
||||
|
|
|
@ -147,7 +147,7 @@ int nfssvc_decode_renameargs(struct svc_rqst *, __be32 *);
|
|||
int nfssvc_decode_linkargs(struct svc_rqst *, __be32 *);
|
||||
int nfssvc_decode_symlinkargs(struct svc_rqst *, __be32 *);
|
||||
int nfssvc_decode_readdirargs(struct svc_rqst *, __be32 *);
|
||||
int nfssvc_encode_stat(struct svc_rqst *, __be32 *);
|
||||
int nfssvc_encode_statres(struct svc_rqst *, __be32 *);
|
||||
int nfssvc_encode_attrstat(struct svc_rqst *, __be32 *);
|
||||
int nfssvc_encode_diropres(struct svc_rqst *, __be32 *);
|
||||
int nfssvc_encode_readlinkres(struct svc_rqst *, __be32 *);
|
||||
|
|
Loading…
Reference in New Issue