diff --git a/sys/netsmb/smb_subr.c b/sys/netsmb/smb_subr.c index 3ecfd8f406a3..ae21133fda06 100644 --- a/sys/netsmb/smb_subr.c +++ b/sys/netsmb/smb_subr.c @@ -75,11 +75,15 @@ smb_proc_intr(struct proc *p) if (p == NULL) return 0; + PROC_LOCK(p); tmpset = p->p_siglist; SIGSETNAND(tmpset, p->p_sigmask); SIGSETNAND(tmpset, p->p_sigignore); - if (SIGNOTEMPTY(p->p_siglist) && SMB_SIGMASK(tmpset)) + if (SIGNOTEMPTY(p->p_siglist) && SMB_SIGMASK(tmpset)) { + PROC_UNLOCK(p); return EINTR; + } + PROC_UNLOCK(p); return 0; }