Fix the sleep event for layout recall.

The sleep for I/O completion during an NFSv4.1 pNFS layout recall used
the wrong event value and could result in the "[nfscl]" thread hung
for the mount.
This patch fixes the event to be the correct.
This bug will only affect NFSv4.1 pnfs mounts and only when the server
does a layout recall callback, so it won't affect many. Without the patch,
a mount without the "pnfs" option will avoid the problem.
Found during testing of the pNFS server.

MFC after:	1 week
This commit is contained in:
Rick Macklem 2018-05-26 23:02:15 +00:00
parent b1a0e564ed
commit 260785fe60

View File

@ -2721,7 +2721,7 @@ nfscl_renewthread(struct nfsclclient *clp, NFSPROC_T *p)
NFSV4LOCK_LOCK) != 0) {
lyp->nfsly_lock.nfslock_lock |=
NFSV4LOCK_WANTED;
(void)nfsmsleep(&lyp->nfsly_lock,
nfsmsleep(&lyp->nfsly_lock.nfslock_lock,
NFSCLSTATEMUTEXPTR, PZERO, "nfslyp",
NULL);
goto tryagain2;