Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[LLC]: Make core block on remote busy.

Signed-off-by: Jochen Friedrich <jochen@scram.de>
Acked-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Jochen Friedrich and committed by
David S. Miller
451677c4 59c6196e

+4 -1
+4 -1
net/llc/af_llc.c
··· 116 116 struct llc_sock* llc = llc_sk(sk); 117 117 int rc = 0; 118 118 119 - if (unlikely(llc_data_accept_state(llc->state) || llc->p_flag)) { 119 + if (unlikely(llc_data_accept_state(llc->state) || 120 + llc->remote_busy_flag || 121 + llc->p_flag)) { 120 122 long timeout = sock_sndtimeo(sk, noblock); 121 123 122 124 rc = llc_ui_wait_for_busy_core(sk, timeout); ··· 544 542 if (sk_wait_event(sk, &timeout, 545 543 (sk->sk_shutdown & RCV_SHUTDOWN) || 546 544 (!llc_data_accept_state(llc->state) && 545 + !llc->remote_busy_flag && 547 546 !llc->p_flag))) 548 547 break; 549 548 rc = -ERESTARTSYS;