Fix for a NFS soft mounts bug where if the number of retries exceeds

the max rexmits, the request was not being bounced back with a
ETIMEDOUT error.

Reported by:	Oliver Lehmann
Submitted by:	Mohan Srinivasan
This commit is contained in:
ps 2005-07-18 02:12:17 +00:00
parent 0b4e11fe18
commit f2e72f270b

View File

@ -580,7 +580,8 @@ nfs_reply(struct nfsreq *rep)
if (rep->r_nmp->nm_flag & NFSMNT_INT)
slpflag = PCATCH;
mtx_lock(&nfs_reply_mtx);
while ((rep->r_mrep == NULL) && (error == 0) &&
while ((rep->r_mrep == NULL) && (error == 0) &&
((rep->r_flags & R_SOFTTERM) == 0) &&
((sotype == SOCK_DGRAM) || ((rep->r_flags & R_MUSTRESEND) == 0)))
error = msleep((caddr_t)rep, &nfs_reply_mtx,
slpflag | (PZERO - 1), "nfsreq", 0);