r222389 introduced a case where the NFSv4 client could
loop in nfscl_getcl() when a forced dismount is in progress, because nfsv4_lock() will return 0 without sleeping when MNTK_UNMOUNTF is set. This patch fixes it so it won't loop calling nfsv4_lock() for this case. MFC after: 2 weeks
This commit is contained in:
parent
134e789b67
commit
305a0c9111
@ -761,7 +761,8 @@ nfscl_getcl(vnode_t vp, struct ucred *cred, NFSPROC_T *p,
|
||||
FREE((caddr_t)newclp, M_NFSCLCLIENT);
|
||||
}
|
||||
NFSLOCKCLSTATE();
|
||||
while ((clp->nfsc_flags & NFSCLFLAGS_HASCLIENTID) == 0 && !igotlock)
|
||||
while ((clp->nfsc_flags & NFSCLFLAGS_HASCLIENTID) == 0 && !igotlock &&
|
||||
(mp->mnt_kern_flag & MNTK_UNMOUNTF) == 0)
|
||||
igotlock = nfsv4_lock(&clp->nfsc_lock, 1, NULL,
|
||||
NFSCLSTATEMUTEXPTR, mp);
|
||||
if (!igotlock)
|
||||
|
Loading…
x
Reference in New Issue
Block a user