static __be32 decode_recall_args(struct svc_rqst *rqstp, struct xdr_stream *xdr, void *argp) { struct cb_recallargs *args = argp; __be32 *p; __be32 status; status = decode_delegation_stateid(xdr, &args->stateid); if (unlikely(status != 0)) return status; p = read_buf(xdr, 4); if (unlikely(p == NULL)) return htonl(NFS4ERR_RESOURCE); args->truncate = ntohl(*p); return decode_fh(xdr, &args->fh); }
static __be32 decode_recall_args(struct svc_rqst *rqstp, struct xdr_stream *xdr, struct cb_recallargs *args) { __be32 *p; __be32 status; status = decode_delegation_stateid(xdr, &args->stateid); if (unlikely(status != 0)) goto out; p = read_buf(xdr, 4); if (unlikely(p == NULL)) { status = htonl(NFS4ERR_RESOURCE); goto out; } args->truncate = ntohl(*p); status = decode_fh(xdr, &args->fh); out: dprintk("%s: exit with status = %d\n", __func__, ntohl(status)); return status; }