mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-11-23 18:14:04 +08:00
NFSD: Clean up nfsd4_encode_layoutcommit()
Adopt the use of conventional XDR utility functions. Restructure the encoder to better align with the XDR definition of the result. Reviewed-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
This commit is contained in:
parent
69f5f0194a
commit
cc313f80d0
@ -2357,10 +2357,10 @@ nfsd4_layoutcommit(struct svc_rqst *rqstp,
|
||||
mutex_unlock(&ls->ls_mutex);
|
||||
|
||||
if (new_size > i_size_read(inode)) {
|
||||
lcp->lc_size_chg = 1;
|
||||
lcp->lc_size_chg = true;
|
||||
lcp->lc_newsize = new_size;
|
||||
} else {
|
||||
lcp->lc_size_chg = 0;
|
||||
lcp->lc_size_chg = false;
|
||||
}
|
||||
|
||||
nfserr = ops->proc_layoutcommit(inode, lcp);
|
||||
|
@ -4914,20 +4914,15 @@ nfsd4_encode_layoutcommit(struct nfsd4_compoundres *resp, __be32 nfserr,
|
||||
{
|
||||
struct nfsd4_layoutcommit *lcp = &u->layoutcommit;
|
||||
struct xdr_stream *xdr = resp->xdr;
|
||||
__be32 *p;
|
||||
|
||||
p = xdr_reserve_space(xdr, 4);
|
||||
if (!p)
|
||||
return nfserr_resource;
|
||||
*p++ = cpu_to_be32(lcp->lc_size_chg);
|
||||
if (lcp->lc_size_chg) {
|
||||
p = xdr_reserve_space(xdr, 8);
|
||||
if (!p)
|
||||
return nfserr_resource;
|
||||
p = xdr_encode_hyper(p, lcp->lc_newsize);
|
||||
}
|
||||
|
||||
return 0;
|
||||
/* ns_sizechanged */
|
||||
nfserr = nfsd4_encode_bool(xdr, lcp->lc_size_chg);
|
||||
if (nfserr != nfs_ok)
|
||||
return nfserr;
|
||||
if (lcp->lc_size_chg)
|
||||
/* ns_size */
|
||||
return nfsd4_encode_length4(xdr, lcp->lc_newsize);
|
||||
return nfs_ok;
|
||||
}
|
||||
|
||||
static __be32
|
||||
|
@ -618,7 +618,7 @@ struct nfsd4_layoutcommit {
|
||||
u32 lc_layout_type; /* request */
|
||||
u32 lc_up_len; /* layout length */
|
||||
void *lc_up_layout; /* decoded by callback */
|
||||
u32 lc_size_chg; /* boolean for response */
|
||||
bool lc_size_chg; /* response */
|
||||
u64 lc_newsize; /* response */
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user