summaryrefslogtreecommitdiffstats
path: root/sys/netsmb
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2003-03-31 22:49:17 +0000
committerjeff <jeff@FreeBSD.org>2003-03-31 22:49:17 +0000
commit46e6ba39f10b4874298cd617b4db656bb562eb37 (patch)
treeda7bdaf8a9eef1885d86203074ba0ad8ae222e7c /sys/netsmb
parent803202f956e45b36a05029bd98db32041fa3a23d (diff)
downloadFreeBSD-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.c2
-rw-r--r--sys/netsmb/smb_rq.c6
-rw-r--r--sys/netsmb/smb_subr.c12
-rw-r--r--sys/netsmb/smb_subr.h2
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);
OpenPOWER on IntegriCloud