summaryrefslogtreecommitdiff
path: root/sys/netsmb
diff options
context:
space:
mode:
authorJeff Roberson <jeff@FreeBSD.org>2003-03-31 22:49:17 +0000
committerJeff Roberson <jeff@FreeBSD.org>2003-03-31 22:49:17 +0000
commit4093529dee0f4cb9b9e199e4221d9d95f0cd347a (patch)
treeda7bdaf8a9eef1885d86203074ba0ad8ae222e7c /sys/netsmb
parent0d49bb4b30e7ecf70acdbfc41bb709ca681ae4d2 (diff)
Notes
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 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);