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<?9X0,!C!<Y]5/_4,[& R(,W:?;Y?U0^[66U.%SN9576K7[=T<
M2QM&*?.WQ(13&3<84Y$T"I>(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,TK</W<(N^00;Q'VWSUR:.IWZ-FG[O$SG[[H[S_X9B08
M!TG&@B7 2!!8/R1HI[ K#@)6QLY]$ZK;>O,>7%%J<W?OZXH5W%IUY_$I]<"Q
M2/&$?R;^!-RY<R@'0<:2<D 2%)6##DWOR4@B]6OC-ES+*E$<H&T(K'8[6WGB
MEI1AE^G"V7Y,^K61MUO;#,GEM=L>_X]JK=6FWI4#+A:8Q#HA?P 87VZ6E 4 
!