You can import this changeset into BK by piping this whole message to: '| bk receive [path to repository]' or apply the patch as usual. =================================================================== ChangeSet@1.1422.1.13, 2003-11-13 04:33:37-02:00, acme@conectiva.com.br o LLC: use sk_wait_error af_llc.c | 31 +++++++++++-------------------- 1 files changed, 11 insertions(+), 20 deletions(-) diff -Nru a/net/llc/af_llc.c b/net/llc/af_llc.c --- a/net/llc/af_llc.c Sat Nov 15 17:01:09 2003 +++ b/net/llc/af_llc.c Sat Nov 15 17:01:09 2003 @@ -420,11 +420,8 @@ if (sk->sk_state == TCP_SYN_SENT) { const long timeo = sock_sndtimeo(sk, flags & O_NONBLOCK); - if (!timeo || !llc_ui_wait_for_conn(sk, timeo)) - goto out; - - rc = sock_intr_errno(timeo); - if (signal_pending(current)) + rc = llc_ui_wait_for_conn(sk, timeo); + if (rc) goto out; } @@ -487,13 +484,9 @@ prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); if (sk_wait_event(sk, &timeout, sk->sk_state == TCP_CLOSE)) break; - rc = -ERESTARTSYS; - if (signal_pending(current)) + rc = sk_wait_error(sk, timeout); + if (rc) break; - rc = -EAGAIN; - if (!timeout) - break; - rc = 0; } finish_wait(sk->sk_sleep, &wait); return rc; @@ -501,38 +494,36 @@ static int llc_ui_wait_for_conn(struct sock *sk, long timeout) { + int rc = 0; DEFINE_WAIT(wait); while (1) { prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); if (sk_wait_event(sk, &timeout, sk->sk_state != TCP_SYN_SENT)) break; - if (signal_pending(current) || !timeout) + rc = sk_wait_error(sk, timeout); + if (rc) break; } finish_wait(sk->sk_sleep, &wait); - return timeout; + return rc; } static int llc_ui_wait_for_busy_core(struct sock *sk, long timeout) { DEFINE_WAIT(wait); struct llc_opt *llc = llc_sk(sk); - int rc; + int rc = 0; while (1) { prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); - rc = 0; if (sk_wait_event(sk, &timeout, (sk->sk_shutdown & RCV_SHUTDOWN) || (!llc_data_accept_state(llc->state) && !llc->p_flag))) break; - rc = -ERESTARTSYS; - if (signal_pending(current)) - break; - rc = -EAGAIN; - if (!timeout) + rc = sk_wait_error(sk, timeout); + if (rc) break; } finish_wait(sk->sk_sleep, &wait); =================================================================== This BitKeeper patch contains the following changesets: 1.1422.1.13 ## Wrapped with gzip_uu ## M'XL( /5WMC\ [U478O:0!1]SOR*"_NR2VLR=SX2D\6RK996*E0L^RQQ'&O0 M9,ID="GDQW<2J;+N@EB6YH,;YMYSYLR]A]S 8ZUM%N2JU.0&OIK:98$RE5:N MV.>A,F6XL#XQ,\8GHK4I==361HL-BRKM>BR,0R2^8IH[M8:]MG468,B/*^[W M+YT%L\]?'B(N4"]I$ST8T%::0_G\I^S<$3D-.8,:8,B9DA& M@"$*QD(?.% >(4;MA\@XSWC2HRRC%%ZEAG<(/4H^P=L>8T@4&)A,AAGL:@WU M9OZ4%VZNK366? ,OFTHR/362]*Z\"*$Y)1]>/U3CYQIMMZI]Y[51FU ==$N. ME'/)1,-Y$LN&]].$,86B+Q>IUOH"7;Z:^W @^SL%SI*&^2&(SAGGE:U!WE;B M!;J7$CDRF38\3?JR,TKO,>7%%J_X]JK=6FWI4#+A:8Q#HA?P 87VZ6E 4 !