The NFSv4 client was passing both the p and cred arguments to
nfsv4_fillattr() as NULLs for the Getattr callback. This caused nfsv4_fillattr() to not fill in the Change attribute for the reply. I believe this was a violation of the RFC, but had little effect on server behaviour. This patch passes a non-NULL p argument to fix this. MFC after: 1 week
This commit is contained in:
parent
688e932b26
commit
b921158ae0
@ -2011,7 +2011,12 @@ nfsv4_fillattr(struct nfsrv_descript *nd, struct mount *mp, vnode_t vp,
|
||||
* First, set the bits that can be filled and get fsinfo.
|
||||
*/
|
||||
NFSSET_ATTRBIT(retbitp, attrbitp);
|
||||
/* If p and cred are NULL, it is a client side call */
|
||||
/*
|
||||
* If both p and cred are NULL, it is a client side setattr call.
|
||||
* If both p and cred are not NULL, it is a server side reply call.
|
||||
* If p is not NULL and cred is NULL, it is a client side callback
|
||||
* reply call.
|
||||
*/
|
||||
if (p == NULL && cred == NULL) {
|
||||
NFSCLRNOTSETABLE_ATTRBIT(retbitp);
|
||||
aclp = saclp;
|
||||
|
@ -3279,7 +3279,7 @@ nfscl_docb(struct nfsrv_descript *nd, NFSPROC_T *p)
|
||||
FREE((caddr_t)nfhp, M_NFSFH);
|
||||
if (!error)
|
||||
(void) nfsv4_fillattr(nd, NULL, NULL, NULL, &va,
|
||||
NULL, 0, &rattrbits, NULL, NULL, 0, 0, 0, 0,
|
||||
NULL, 0, &rattrbits, NULL, p, 0, 0, 0, 0,
|
||||
(uint64_t)0);
|
||||
break;
|
||||
case NFSV4OP_CBRECALL:
|
||||
|
Loading…
Reference in New Issue
Block a user