diff options
| author | Jeff Roberson <jeff@FreeBSD.org> | 2003-03-31 22:49:17 +0000 |
|---|---|---|
| committer | Jeff Roberson <jeff@FreeBSD.org> | 2003-03-31 22:49:17 +0000 |
| commit | 4093529dee0f4cb9b9e199e4221d9d95f0cd347a (patch) | |
| tree | da7bdaf8a9eef1885d86203074ba0ad8ae222e7c /sys/netsmb | |
| parent | 0d49bb4b30e7ecf70acdbfc41bb709ca681ae4d2 (diff) | |
Notes
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 5ae5f146e62b..bc8e20b4707f 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 5e0c7a86d4f2..456672de06ec 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 55c4c2665794..0e0356054d23 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 537d220173d4..684f6bb6936b 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); |
