Fix for a race between the thread transmitting the request and the
thread processing the reply. Submitted by: Mohan Srinivasan
This commit is contained in:
parent
7901356c23
commit
120c58288c
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=151998
@ -1011,7 +1011,11 @@ nfs_request(struct vnode *vp, struct mbuf *mrest, int procnum,
|
||||
nfs_sndunlock(rep);
|
||||
}
|
||||
mtx_lock(&nfs_reqq_mtx);
|
||||
if (!error && (rep->r_flags & R_MUSTRESEND) == 0) {
|
||||
/*
|
||||
* nfs_timer() could've re-transmitted the request if we ended up
|
||||
* blocking on nfs_send() too long, so check for R_SENT here.
|
||||
*/
|
||||
if (!error && (rep->r_flags & (R_SENT | R_MUSTRESEND)) == 0) {
|
||||
nmp->nm_sent += NFS_CWNDSCALE;
|
||||
rep->r_flags |= R_SENT;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user