Modify the NFSv4.1/pNFS client to ask for a maximum length of layout.

The code specified the length of a layout as INT64_MAX instead of
UINT64_MAX. This could result in getting a layout for less than the
full file for extremely large files. Although having little practical
effect, this patch corrects this in the code.
Detected during recent testing of the pNFS server.

MFC after:	2 weeks
This commit is contained in:
rmacklem 2017-04-29 00:34:53 +00:00
parent 9940acb652
commit 8d88056d06

View File

@ -5238,7 +5238,7 @@ nfsrpc_getlayout(struct nfsmount *nmp, vnode_t vp, struct nfsfh *nfhp,
stateid.other[1] = stateidp->other[1];
stateid.other[2] = stateidp->other[2];
error = nfsrpc_layoutget(nmp, nfhp->nfh_fh,
nfhp->nfh_len, iomode, (uint64_t)0, INT64_MAX,
nfhp->nfh_len, iomode, (uint64_t)0, UINT64_MAX,
(uint64_t)0, layoutlen, &stateid, &retonclose,
&flh, cred, p, NULL);
} else {
@ -5248,7 +5248,7 @@ nfsrpc_getlayout(struct nfsmount *nmp, vnode_t vp, struct nfsfh *nfhp,
stateid.other[1] = lyp->nfsly_stateid.other[1];
stateid.other[2] = lyp->nfsly_stateid.other[2];
error = nfsrpc_layoutget(nmp, nfhp->nfh_fh,
nfhp->nfh_len, iomode, off, INT64_MAX,
nfhp->nfh_len, iomode, off, UINT64_MAX,
(uint64_t)0, layoutlen, &stateid, &retonclose,
&flh, cred, p, NULL);
}