--- a/sys/vfs/nfs/nfs_srvcache.c +++ b/sys/vfs/nfs/nfs_srvcache.c @@ -250,6 +250,9 @@ rp->rc_flag |= RC_LOCKED; LIST_REMOVE(rp, rc_hash); TAILQ_REMOVE(&nfsrvlruhead, rp, rc_lru); + if (rp->rc_flag & RC_REPSTATUS) { + rp->rc_flag &= ~RC_REPSTATUS; + } if (rp->rc_flag & RC_REPMBUF) { m_freem(rp->rc_reply); rp->rc_reply = NULL; @@ -342,6 +345,9 @@ rp->rc_reply = NULL; rp->rc_flag &= ~RC_REPMBUF; } + if (rp->rc_flag & RC_REPSTATUS) { + rp->rc_flag &= ~RC_REPSTATUS; + } rp->rc_reply = m_copym(repmbuf, 0, M_COPYALL, M_WAITOK); rp->rc_flag |= RC_REPMBUF;