Commit c44b31c2 authored by Chuck Lever's avatar Chuck Lever Committed by J. Bruce Fields
Browse files

SUNRPC: Change return value type of .pc_decode



Returning an undecorated integer is an age-old trope, but it's
not clear (even to previous experts in this code) that the only
valid return values are 1 and 0. These functions do not return
a negative errno, rpc_stat value, or a positive length.

Document there are only two valid return values by having
.pc_decode return only true or false.

Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
parent 16c66364
Loading
Loading
Loading
Loading
+48 −48
Original line number Diff line number Diff line
@@ -145,103 +145,103 @@ svcxdr_encode_testrply(struct xdr_stream *xdr, const struct nlm_res *resp)
 * Decode Call arguments
 */

int
bool
nlmsvc_decode_void(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	return 1;
	return true;
}

int
bool
nlmsvc_decode_testargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nlm_args *argp = rqstp->rq_argp;
	u32 exclusive;

	if (!svcxdr_decode_cookie(xdr, &argp->cookie))
		return 0;
		return false;
	if (xdr_stream_decode_bool(xdr, &exclusive) < 0)
		return 0;
		return false;
	if (!svcxdr_decode_lock(xdr, &argp->lock))
		return 0;
		return false;
	if (exclusive)
		argp->lock.fl.fl_type = F_WRLCK;

	return 1;
	return true;
}

int
bool
nlmsvc_decode_lockargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nlm_args *argp = rqstp->rq_argp;
	u32 exclusive;

	if (!svcxdr_decode_cookie(xdr, &argp->cookie))
		return 0;
		return false;
	if (xdr_stream_decode_bool(xdr, &argp->block) < 0)
		return 0;
		return false;
	if (xdr_stream_decode_bool(xdr, &exclusive) < 0)
		return 0;
		return false;
	if (!svcxdr_decode_lock(xdr, &argp->lock))
		return 0;
		return false;
	if (exclusive)
		argp->lock.fl.fl_type = F_WRLCK;
	if (xdr_stream_decode_bool(xdr, &argp->reclaim) < 0)
		return 0;
		return false;
	if (xdr_stream_decode_u32(xdr, &argp->state) < 0)
		return 0;
		return false;
	argp->monitor = 1;		/* monitor client by default */

	return 1;
	return true;
}

int
bool
nlmsvc_decode_cancargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nlm_args *argp = rqstp->rq_argp;
	u32 exclusive;

	if (!svcxdr_decode_cookie(xdr, &argp->cookie))
		return 0;
		return false;
	if (xdr_stream_decode_bool(xdr, &argp->block) < 0)
		return 0;
		return false;
	if (xdr_stream_decode_bool(xdr, &exclusive) < 0)
		return 0;
		return false;
	if (!svcxdr_decode_lock(xdr, &argp->lock))
		return 0;
		return false;
	if (exclusive)
		argp->lock.fl.fl_type = F_WRLCK;

	return 1;
	return true;
}

int
bool
nlmsvc_decode_unlockargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nlm_args *argp = rqstp->rq_argp;

	if (!svcxdr_decode_cookie(xdr, &argp->cookie))
		return 0;
		return false;
	if (!svcxdr_decode_lock(xdr, &argp->lock))
		return 0;
		return false;
	argp->lock.fl.fl_type = F_UNLCK;

	return 1;
	return true;
}

int
bool
nlmsvc_decode_res(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nlm_res *resp = rqstp->rq_argp;

	if (!svcxdr_decode_cookie(xdr, &resp->cookie))
		return 0;
		return false;
	if (!svcxdr_decode_stats(xdr, &resp->status))
		return 0;
		return false;

	return 1;
	return true;
}

int
bool
nlmsvc_decode_reboot(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nlm_reboot *argp = rqstp->rq_argp;
@@ -249,25 +249,25 @@ nlmsvc_decode_reboot(struct svc_rqst *rqstp, struct xdr_stream *xdr)
	u32 len;

	if (xdr_stream_decode_u32(xdr, &len) < 0)
		return 0;
		return false;
	if (len > SM_MAXSTRLEN)
		return 0;
		return false;
	p = xdr_inline_decode(xdr, len);
	if (!p)
		return 0;
		return false;
	argp->len = len;
	argp->mon = (char *)p;
	if (xdr_stream_decode_u32(xdr, &argp->state) < 0)
		return 0;
		return false;
	p = xdr_inline_decode(xdr, SM_PRIV_SIZE);
	if (!p)
		return 0;
		return false;
	memcpy(&argp->priv.data, p, sizeof(argp->priv.data));

	return 1;
	return true;
}

int
bool
nlmsvc_decode_shareargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nlm_args *argp = rqstp->rq_argp;
@@ -278,34 +278,34 @@ nlmsvc_decode_shareargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
	lock->svid = ~(u32)0;

	if (!svcxdr_decode_cookie(xdr, &argp->cookie))
		return 0;
		return false;
	if (!svcxdr_decode_string(xdr, &lock->caller, &lock->len))
		return 0;
		return false;
	if (!svcxdr_decode_fhandle(xdr, &lock->fh))
		return 0;
		return false;
	if (!svcxdr_decode_owner(xdr, &lock->oh))
		return 0;
		return false;
	/* XXX: Range checks are missing in the original code */
	if (xdr_stream_decode_u32(xdr, &argp->fsm_mode) < 0)
		return 0;
		return false;
	if (xdr_stream_decode_u32(xdr, &argp->fsm_access) < 0)
		return 0;
		return false;

	return 1;
	return true;
}

int
bool
nlmsvc_decode_notify(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nlm_args *argp = rqstp->rq_argp;
	struct nlm_lock	*lock = &argp->lock;

	if (!svcxdr_decode_string(xdr, &lock->caller, &lock->len))
		return 0;
		return false;
	if (xdr_stream_decode_u32(xdr, &argp->state) < 0)
		return 0;
		return false;

	return 1;
	return true;
}


+49 −48
Original line number Diff line number Diff line
@@ -144,102 +144,103 @@ svcxdr_encode_testrply(struct xdr_stream *xdr, const struct nlm_res *resp)
 * Decode Call arguments
 */

int
bool
nlm4svc_decode_void(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	return 1;
	return true;
}

int
bool
nlm4svc_decode_testargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nlm_args *argp = rqstp->rq_argp;
	u32 exclusive;

	if (!svcxdr_decode_cookie(xdr, &argp->cookie))
		return 0;
		return false;
	if (xdr_stream_decode_bool(xdr, &exclusive) < 0)
		return 0;
		return false;
	if (!svcxdr_decode_lock(xdr, &argp->lock))
		return 0;
		return false;
	if (exclusive)
		argp->lock.fl.fl_type = F_WRLCK;

	return 1;
	return true;
}

int
bool
nlm4svc_decode_lockargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nlm_args *argp = rqstp->rq_argp;
	u32 exclusive;

	if (!svcxdr_decode_cookie(xdr, &argp->cookie))
		return 0;
		return false;
	if (xdr_stream_decode_bool(xdr, &argp->block) < 0)
		return 0;
		return false;
	if (xdr_stream_decode_bool(xdr, &exclusive) < 0)
		return 0;
		return false;
	if (!svcxdr_decode_lock(xdr, &argp->lock))
		return 0;
		return false;
	if (exclusive)
		argp->lock.fl.fl_type = F_WRLCK;
	if (xdr_stream_decode_bool(xdr, &argp->reclaim) < 0)
		return 0;
		return false;
	if (xdr_stream_decode_u32(xdr, &argp->state) < 0)
		return 0;
		return false;
	argp->monitor = 1;		/* monitor client by default */

	return 1;
	return true;
}

int
bool
nlm4svc_decode_cancargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nlm_args *argp = rqstp->rq_argp;
	u32 exclusive;

	if (!svcxdr_decode_cookie(xdr, &argp->cookie))
		return 0;
		return false;
	if (xdr_stream_decode_bool(xdr, &argp->block) < 0)
		return 0;
		return false;
	if (xdr_stream_decode_bool(xdr, &exclusive) < 0)
		return 0;
		return false;
	if (!svcxdr_decode_lock(xdr, &argp->lock))
		return 0;
		return false;
	if (exclusive)
		argp->lock.fl.fl_type = F_WRLCK;
	return 1;

	return true;
}

int
bool
nlm4svc_decode_unlockargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nlm_args *argp = rqstp->rq_argp;

	if (!svcxdr_decode_cookie(xdr, &argp->cookie))
		return 0;
		return false;
	if (!svcxdr_decode_lock(xdr, &argp->lock))
		return 0;
		return false;
	argp->lock.fl.fl_type = F_UNLCK;

	return 1;
	return true;
}

int
bool
nlm4svc_decode_res(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nlm_res *resp = rqstp->rq_argp;

	if (!svcxdr_decode_cookie(xdr, &resp->cookie))
		return 0;
		return false;
	if (!svcxdr_decode_stats(xdr, &resp->status))
		return 0;
		return false;

	return 1;
	return true;
}

int
bool
nlm4svc_decode_reboot(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nlm_reboot *argp = rqstp->rq_argp;
@@ -247,25 +248,25 @@ nlm4svc_decode_reboot(struct svc_rqst *rqstp, struct xdr_stream *xdr)
	u32 len;

	if (xdr_stream_decode_u32(xdr, &len) < 0)
		return 0;
		return false;
	if (len > SM_MAXSTRLEN)
		return 0;
		return false;
	p = xdr_inline_decode(xdr, len);
	if (!p)
		return 0;
		return false;
	argp->len = len;
	argp->mon = (char *)p;
	if (xdr_stream_decode_u32(xdr, &argp->state) < 0)
		return 0;
		return false;
	p = xdr_inline_decode(xdr, SM_PRIV_SIZE);
	if (!p)
		return 0;
		return false;
	memcpy(&argp->priv.data, p, sizeof(argp->priv.data));

	return 1;
	return true;
}

int
bool
nlm4svc_decode_shareargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nlm_args *argp = rqstp->rq_argp;
@@ -276,34 +277,34 @@ nlm4svc_decode_shareargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
	lock->svid = ~(u32)0;

	if (!svcxdr_decode_cookie(xdr, &argp->cookie))
		return 0;
		return false;
	if (!svcxdr_decode_string(xdr, &lock->caller, &lock->len))
		return 0;
		return false;
	if (!svcxdr_decode_fhandle(xdr, &lock->fh))
		return 0;
		return false;
	if (!svcxdr_decode_owner(xdr, &lock->oh))
		return 0;
		return false;
	/* XXX: Range checks are missing in the original code */
	if (xdr_stream_decode_u32(xdr, &argp->fsm_mode) < 0)
		return 0;
		return false;
	if (xdr_stream_decode_u32(xdr, &argp->fsm_access) < 0)
		return 0;
		return false;

	return 1;
	return true;
}

int
bool
nlm4svc_decode_notify(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nlm_args *argp = rqstp->rq_argp;
	struct nlm_lock	*lock = &argp->lock;

	if (!svcxdr_decode_string(xdr, &lock->caller, &lock->len))
		return 0;
		return false;
	if (xdr_stream_decode_u32(xdr, &argp->state) < 0)
		return 0;
		return false;

	return 1;
	return true;
}


+15 −15
Original line number Diff line number Diff line
@@ -188,51 +188,51 @@ static __be32 nfsacld_proc_access(struct svc_rqst *rqstp)
 * XDR decode functions
 */

static int
static bool
nfsaclsvc_decode_getaclargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nfsd3_getaclargs *argp = rqstp->rq_argp;

	if (!svcxdr_decode_fhandle(xdr, &argp->fh))
		return 0;
		return false;
	if (xdr_stream_decode_u32(xdr, &argp->mask) < 0)
		return 0;
		return false;

	return 1;
	return true;
}

static int
static bool
nfsaclsvc_decode_setaclargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nfsd3_setaclargs *argp = rqstp->rq_argp;

	if (!svcxdr_decode_fhandle(xdr, &argp->fh))
		return 0;
		return false;
	if (xdr_stream_decode_u32(xdr, &argp->mask) < 0)
		return 0;
		return false;
	if (argp->mask & ~NFS_ACL_MASK)
		return 0;
		return false;
	if (!nfs_stream_decode_acl(xdr, NULL, (argp->mask & NFS_ACL) ?
				   &argp->acl_access : NULL))
		return 0;
		return false;
	if (!nfs_stream_decode_acl(xdr, NULL, (argp->mask & NFS_DFACL) ?
				   &argp->acl_default : NULL))
		return 0;
		return false;

	return 1;
	return true;
}

static int
static bool
nfsaclsvc_decode_accessargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nfsd3_accessargs *args = rqstp->rq_argp;

	if (!svcxdr_decode_fhandle(xdr, &args->fh))
		return 0;
		return false;
	if (xdr_stream_decode_u32(xdr, &args->access) < 0)
		return 0;
		return false;

	return 1;
	return true;
}

/*
+11 −11
Original line number Diff line number Diff line
@@ -127,38 +127,38 @@ static __be32 nfsd3_proc_setacl(struct svc_rqst *rqstp)
 * XDR decode functions
 */

static int
static bool
nfs3svc_decode_getaclargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nfsd3_getaclargs *args = rqstp->rq_argp;

	if (!svcxdr_decode_nfs_fh3(xdr, &args->fh))
		return 0;
		return false;
	if (xdr_stream_decode_u32(xdr, &args->mask) < 0)
		return 0;
		return false;

	return 1;
	return true;
}

static int
static bool
nfs3svc_decode_setaclargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nfsd3_setaclargs *argp = rqstp->rq_argp;

	if (!svcxdr_decode_nfs_fh3(xdr, &argp->fh))
		return 0;
		return false;
	if (xdr_stream_decode_u32(xdr, &argp->mask) < 0)
		return 0;
		return false;
	if (argp->mask & ~NFS_ACL_MASK)
		return 0;
		return false;
	if (!nfs_stream_decode_acl(xdr, NULL, (argp->mask & NFS_ACL) ?
				   &argp->acl_access : NULL))
		return 0;
		return false;
	if (!nfs_stream_decode_acl(xdr, NULL, (argp->mask & NFS_DFACL) ?
				   &argp->acl_default : NULL))
		return 0;
		return false;

	return 1;
	return true;
}

/*
+59 −59
Original line number Diff line number Diff line
@@ -556,7 +556,7 @@ void fill_post_wcc(struct svc_fh *fhp)
 * XDR decode functions
 */

int
bool
nfs3svc_decode_fhandleargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nfsd_fhandle *args = rqstp->rq_argp;
@@ -564,7 +564,7 @@ nfs3svc_decode_fhandleargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
	return svcxdr_decode_nfs_fh3(xdr, &args->fh);
}

int
bool
nfs3svc_decode_sattrargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nfsd3_sattrargs *args = rqstp->rq_argp;
@@ -574,7 +574,7 @@ nfs3svc_decode_sattrargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
		svcxdr_decode_sattrguard3(xdr, args);
}

int
bool
nfs3svc_decode_diropargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nfsd3_diropargs *args = rqstp->rq_argp;
@@ -582,75 +582,75 @@ nfs3svc_decode_diropargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
	return svcxdr_decode_diropargs3(xdr, &args->fh, &args->name, &args->len);
}

int
bool
nfs3svc_decode_accessargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nfsd3_accessargs *args = rqstp->rq_argp;

	if (!svcxdr_decode_nfs_fh3(xdr, &args->fh))
		return 0;
		return false;
	if (xdr_stream_decode_u32(xdr, &args->access) < 0)
		return 0;
		return false;

	return 1;
	return true;
}

int
bool
nfs3svc_decode_readargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nfsd3_readargs *args = rqstp->rq_argp;

	if (!svcxdr_decode_nfs_fh3(xdr, &args->fh))
		return 0;
		return false;
	if (xdr_stream_decode_u64(xdr, &args->offset) < 0)
		return 0;
		return false;
	if (xdr_stream_decode_u32(xdr, &args->count) < 0)
		return 0;
		return false;

	return 1;
	return true;
}

int
bool
nfs3svc_decode_writeargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nfsd3_writeargs *args = rqstp->rq_argp;
	u32 max_blocksize = svc_max_payload(rqstp);

	if (!svcxdr_decode_nfs_fh3(xdr, &args->fh))
		return 0;
		return false;
	if (xdr_stream_decode_u64(xdr, &args->offset) < 0)
		return 0;
		return false;
	if (xdr_stream_decode_u32(xdr, &args->count) < 0)
		return 0;
		return false;
	if (xdr_stream_decode_u32(xdr, &args->stable) < 0)
		return 0;
		return false;

	/* opaque data */
	if (xdr_stream_decode_u32(xdr, &args->len) < 0)
		return 0;
		return false;

	/* request sanity */
	if (args->count != args->len)
		return 0;
		return false;
	if (args->count > max_blocksize) {
		args->count = max_blocksize;
		args->len = max_blocksize;
	}
	if (!xdr_stream_subsegment(xdr, &args->payload, args->count))
		return 0;
		return false;

	return 1;
	return true;
}

int
bool
nfs3svc_decode_createargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nfsd3_createargs *args = rqstp->rq_argp;

	if (!svcxdr_decode_diropargs3(xdr, &args->fh, &args->name, &args->len))
		return 0;
		return false;
	if (xdr_stream_decode_u32(xdr, &args->createmode) < 0)
		return 0;
		return false;
	switch (args->createmode) {
	case NFS3_CREATE_UNCHECKED:
	case NFS3_CREATE_GUARDED:
@@ -658,15 +658,15 @@ nfs3svc_decode_createargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
	case NFS3_CREATE_EXCLUSIVE:
		args->verf = xdr_inline_decode(xdr, NFS3_CREATEVERFSIZE);
		if (!args->verf)
			return 0;
			return false;
		break;
	default:
		return 0;
		return false;
	}
	return 1;
	return true;
}

int
bool
nfs3svc_decode_mkdirargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nfsd3_createargs *args = rqstp->rq_argp;
@@ -676,7 +676,7 @@ nfs3svc_decode_mkdirargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
		svcxdr_decode_sattr3(rqstp, xdr, &args->attrs);
}

int
bool
nfs3svc_decode_symlinkargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nfsd3_symlinkargs *args = rqstp->rq_argp;
@@ -685,33 +685,33 @@ nfs3svc_decode_symlinkargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
	size_t remaining;

	if (!svcxdr_decode_diropargs3(xdr, &args->ffh, &args->fname, &args->flen))
		return 0;
		return false;
	if (!svcxdr_decode_sattr3(rqstp, xdr, &args->attrs))
		return 0;
		return false;
	if (xdr_stream_decode_u32(xdr, &args->tlen) < 0)
		return 0;
		return false;

	/* request sanity */
	remaining = head->iov_len + rqstp->rq_arg.page_len + tail->iov_len;
	remaining -= xdr_stream_pos(xdr);
	if (remaining < xdr_align_size(args->tlen))
		return 0;
		return false;

	args->first.iov_base = xdr->p;
	args->first.iov_len = head->iov_len - xdr_stream_pos(xdr);

	return 1;
	return true;
}

int
bool
nfs3svc_decode_mknodargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nfsd3_mknodargs *args = rqstp->rq_argp;

	if (!svcxdr_decode_diropargs3(xdr, &args->fh, &args->name, &args->len))
		return 0;
		return false;
	if (xdr_stream_decode_u32(xdr, &args->ftype) < 0)
		return 0;
		return false;
	switch (args->ftype) {
	case NF3CHR:
	case NF3BLK:
@@ -725,13 +725,13 @@ nfs3svc_decode_mknodargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
		/* Valid XDR but illegal file types */
		break;
	default:
		return 0;
		return false;
	}

	return 1;
	return true;
}

int
bool
nfs3svc_decode_renameargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nfsd3_renameargs *args = rqstp->rq_argp;
@@ -742,7 +742,7 @@ nfs3svc_decode_renameargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
					 &args->tname, &args->tlen);
}

int
bool
nfs3svc_decode_linkargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nfsd3_linkargs *args = rqstp->rq_argp;
@@ -752,59 +752,59 @@ nfs3svc_decode_linkargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
					 &args->tname, &args->tlen);
}

int
bool
nfs3svc_decode_readdirargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nfsd3_readdirargs *args = rqstp->rq_argp;

	if (!svcxdr_decode_nfs_fh3(xdr, &args->fh))
		return 0;
		return false;
	if (xdr_stream_decode_u64(xdr, &args->cookie) < 0)
		return 0;
		return false;
	args->verf = xdr_inline_decode(xdr, NFS3_COOKIEVERFSIZE);
	if (!args->verf)
		return 0;
		return false;
	if (xdr_stream_decode_u32(xdr, &args->count) < 0)
		return 0;
		return false;

	return 1;
	return true;
}

int
bool
nfs3svc_decode_readdirplusargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nfsd3_readdirargs *args = rqstp->rq_argp;
	u32 dircount;

	if (!svcxdr_decode_nfs_fh3(xdr, &args->fh))
		return 0;
		return false;
	if (xdr_stream_decode_u64(xdr, &args->cookie) < 0)
		return 0;
		return false;
	args->verf = xdr_inline_decode(xdr, NFS3_COOKIEVERFSIZE);
	if (!args->verf)
		return 0;
		return false;
	/* dircount is ignored */
	if (xdr_stream_decode_u32(xdr, &dircount) < 0)
		return 0;
		return false;
	if (xdr_stream_decode_u32(xdr, &args->count) < 0)
		return 0;
		return false;

	return 1;
	return true;
}

int
bool
nfs3svc_decode_commitargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
{
	struct nfsd3_commitargs *args = rqstp->rq_argp;

	if (!svcxdr_decode_nfs_fh3(xdr, &args->fh))
		return 0;
		return false;
	if (xdr_stream_decode_u64(xdr, &args->offset) < 0)
		return 0;
		return false;
	if (xdr_stream_decode_u32(xdr, &args->count) < 0)
		return 0;
		return false;

	return 1;
	return true;
}

/*
Loading