diff options
author | jeff <jeff@FreeBSD.org> | 2003-03-31 22:49:17 +0000 |
---|---|---|
committer | jeff <jeff@FreeBSD.org> | 2003-03-31 22:49:17 +0000 |
commit | 46e6ba39f10b4874298cd617b4db656bb562eb37 (patch) | |
tree | da7bdaf8a9eef1885d86203074ba0ad8ae222e7c /sys/netsmb | |
parent | 803202f956e45b36a05029bd98db32041fa3a23d (diff) | |
download | FreeBSD-src-46e6ba39f10b4874298cd617b4db656bb562eb37.zip FreeBSD-src-46e6ba39f10b4874298cd617b4db656bb562eb37.tar.gz |
- Move p->p_sigmask to td->td_sigmask. Signal masks will be per thread with
a follow on commit to kern_sig.c
- signotify() now operates on a thread since unmasked pending signals are
stored in the thread.
- PS_NEEDSIGCHK moves to TDF_NEEDSIGCHK.
Diffstat (limited to 'sys/netsmb')
-rw-r--r-- | sys/netsmb/smb_iod.c | 2 | ||||
-rw-r--r-- | sys/netsmb/smb_rq.c | 6 | ||||
-rw-r--r-- | sys/netsmb/smb_subr.c | 12 | ||||
-rw-r--r-- | sys/netsmb/smb_subr.h | 2 |
4 files changed, 12 insertions, 10 deletions
diff --git a/sys/netsmb/smb_iod.c b/sys/netsmb/smb_iod.c index 5ae5f14..bc8e20b 100644 --- a/sys/netsmb/smb_iod.c +++ b/sys/netsmb/smb_iod.c @@ -356,7 +356,7 @@ smb_iod_recvall(struct smbiod *iod) */ SMB_IOD_RQLOCK(iod); TAILQ_FOREACH(rqp, &iod->iod_rqlist, sr_link) { - if (smb_proc_intr(rqp->sr_cred->scr_td->td_proc)) { + if (smb_td_intr(rqp->sr_cred->scr_td)) { smb_iod_rqprocessed(rqp, EINTR); } } diff --git a/sys/netsmb/smb_rq.c b/sys/netsmb/smb_rq.c index 5e0c7a8..456672d 100644 --- a/sys/netsmb/smb_rq.c +++ b/sys/netsmb/smb_rq.c @@ -184,7 +184,7 @@ smb_rq_enqueue(struct smb_rq *rqp) if (ssp->ss_flags & SMBS_RECONNECTING) { msleep(&ssp->ss_vcgenid, SMBS_ST_LOCKPTR(ssp), PWAIT | PDROP, "90trcn", hz); - if (smb_proc_intr(rqp->sr_cred->scr_td->td_proc)) + if (smb_td_intr(rqp->sr_cred->scr_td)) return EINTR; continue; } @@ -248,11 +248,9 @@ smb_rq_bend(struct smb_rq *rqp) int smb_rq_intr(struct smb_rq *rqp) { - struct proc *p = rqp->sr_cred->scr_td->td_proc; - if (rqp->sr_flags & SMBR_INTR) return EINTR; - return smb_proc_intr(p); + return smb_td_intr(rqp->sr_cred->scr_td); } int diff --git a/sys/netsmb/smb_subr.c b/sys/netsmb/smb_subr.c index 55c4c26..0e03560 100644 --- a/sys/netsmb/smb_subr.c +++ b/sys/netsmb/smb_subr.c @@ -69,17 +69,21 @@ smb_makescred(struct smb_cred *scred, struct thread *td, struct ucred *cred) } int -smb_proc_intr(struct proc *p) +smb_td_intr(struct thread *td) { + struct proc *p; sigset_t tmpset; - if (p == NULL) + if (td == NULL) return 0; + + p = td->td_proc; PROC_LOCK(p); tmpset = p->p_siglist; - SIGSETNAND(tmpset, p->p_sigmask); + SIGSETOR(tmpset, td->td_siglist); + SIGSETNAND(tmpset, td->td_sigmask); SIGSETNAND(tmpset, p->p_sigignore); - if (SIGNOTEMPTY(p->p_siglist) && SMB_SIGMASK(tmpset)) { + if (SIGNOTEMPTY(td->td_siglist) && SMB_SIGMASK(tmpset)) { PROC_UNLOCK(p); return EINTR; } diff --git a/sys/netsmb/smb_subr.h b/sys/netsmb/smb_subr.h index 537d220..684f6bb 100644 --- a/sys/netsmb/smb_subr.h +++ b/sys/netsmb/smb_subr.h @@ -140,7 +140,7 @@ struct smb_vc; struct smb_rq; void smb_makescred(struct smb_cred *scred, struct thread *td, struct ucred *cred); -int smb_proc_intr(struct proc *); +int smb_td_intr(struct thread *); char *smb_strdup(const char *s); void *smb_memdup(const void *umem, int len); char *smb_strdupin(char *s, int maxlen); |