Crashes have been observed for NFSv4.1 mounts when the system
is being shut down which were caused by the nfscbd_pool being destroyed before the backchannel is disabled. This patch is believed to fix the problem, by simply avoiding ever destroying the nfscbd_pool. Since the NFS client module cannot be unloaded, this should not cause a memory leak. MFC after: 2 weeks
This commit is contained in:
parent
ad7328341a
commit
99fb6f77e5
@ -278,17 +278,15 @@ nfsrvd_cbinit(int terminating)
|
||||
while (nfs_numnfscbd > 0)
|
||||
msleep(&nfs_numnfscbd, NFSDLOCKMUTEXPTR, PZERO,
|
||||
"nfscbdt", 0);
|
||||
NFSD_UNLOCK();
|
||||
svcpool_destroy(nfscbd_pool);
|
||||
nfscbd_pool = NULL;
|
||||
} else
|
||||
NFSD_UNLOCK();
|
||||
}
|
||||
|
||||
nfscbd_pool = svcpool_create("nfscbd", NULL);
|
||||
nfscbd_pool->sp_rcache = NULL;
|
||||
nfscbd_pool->sp_assign = NULL;
|
||||
nfscbd_pool->sp_done = NULL;
|
||||
|
||||
NFSD_LOCK();
|
||||
if (nfscbd_pool == NULL) {
|
||||
NFSD_UNLOCK();
|
||||
nfscbd_pool = svcpool_create("nfscbd", NULL);
|
||||
nfscbd_pool->sp_rcache = NULL;
|
||||
nfscbd_pool->sp_assign = NULL;
|
||||
nfscbd_pool->sp_done = NULL;
|
||||
NFSD_LOCK();
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user