Fix a bug in NFSv3 READDIRPLUS reply processing
The client's READDIRPLUS logic skips the attributes and filehandle of the ".." entry. If the server doesn't send attributes but does send a filehandle for "..", the client's logic doesn't account for the extra "value follows" field that indicates whether the filehandle is present, causing the remaining entries in the reply to be ignored. Sponsored by: Network Appliance, Inc. Reviewed by: rick, mohans Approved by: silby MFC after: 2 weeks
This commit is contained in:
parent
7d4fc1e0d4
commit
85c8b06cbe
@ -2312,7 +2312,11 @@ nfs_readdirplusrpc(struct vnode *vp, struct uio *uiop, struct ucred *cred)
|
||||
/* Just skip over the file handle */
|
||||
tl = nfsm_dissect(u_int32_t *, NFSX_UNSIGNED);
|
||||
i = fxdr_unsigned(int, *tl);
|
||||
nfsm_adv(nfsm_rndup(i));
|
||||
if (i) {
|
||||
tl = nfsm_dissect(u_int32_t *, NFSX_UNSIGNED);
|
||||
fhsize = fxdr_unsigned(int, *tl);
|
||||
nfsm_adv(nfsm_rndup(fhsize));
|
||||
}
|
||||
}
|
||||
if (newvp != NULLVP) {
|
||||
if (newvp == vp)
|
||||
|
Loading…
x
Reference in New Issue
Block a user