diff options
| author | John Baldwin <jhb@FreeBSD.org> | 2006-08-03 15:31:52 +0000 |
|---|---|---|
| committer | John Baldwin <jhb@FreeBSD.org> | 2006-08-03 15:31:52 +0000 |
| commit | ac695ab41b79b77209b393560ff79e26879e36ef (patch) | |
| tree | 6f9469d0d9c7f2244ecf78fde771e50720c28770 /sys/netsmb/smb_trantcp.c | |
| parent | 60c60618829d149bd7eb02de3871a0a2c487c432 (diff) | |
Notes
Diffstat (limited to 'sys/netsmb/smb_trantcp.c')
| -rw-r--r-- | sys/netsmb/smb_trantcp.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/sys/netsmb/smb_trantcp.c b/sys/netsmb/smb_trantcp.c index 4c273cd90431..5db6b7e47573 100644 --- a/sys/netsmb/smb_trantcp.c +++ b/sys/netsmb/smb_trantcp.c @@ -94,18 +94,12 @@ nb_setsockopt_int(struct socket *so, int level, int name, int val) return sosetopt(so, &sopt); } -static __inline int -nb_poll(struct nbpcb *nbp, int events, struct thread *td) -{ - return sopoll(nbp->nbp_tso, events, NULL, td); -} - static int nbssn_rselect(struct nbpcb *nbp, struct timeval *tv, int events, struct thread *td) { struct timeval atv, rtv, ttv; - int ncoll, timo, error; + int ncoll, timo, error, revents; if (tv) { atv = *tv; @@ -128,16 +122,18 @@ retry: /* XXX: Should be done when the thread is initialized. */ TAILQ_INIT(&td->td_selq); - error = nb_poll(nbp, events, td); + revents = sopoll(nbp->nbp_tso, events, NULL, td); mtx_lock(&sellock); - if (error) { + if (revents) { error = 0; goto done; } if (tv) { getmicrouptime(&rtv); - if (timevalcmp(&rtv, &atv, >=)) + if (timevalcmp(&rtv, &atv, >=)) { + error = EWOULDBLOCK; goto done; + } ttv = atv; timevalsub(&ttv, &rtv); timo = tvtohz(&ttv); |
