[DRBD-cvs] drbd by lars; asender needs to be interruptible in drb...

drbd-user@lists.linbit.com drbd-user@lists.linbit.com
Sun, 16 May 2004 16:57:11 +0200 (CEST)


DRBD CVS committal

Author  : lars
Module  : drbd

Dir     : drbd/drbd


Modified Files:
      Tag: rel-0_7-branch
	drbd_receiver.c 


Log Message:
asender needs to be interruptible in drbd_process_ee :(
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/drbd_receiver.c,v
retrieving revision 1.97.2.154
retrieving revision 1.97.2.155
diff -u -3 -r1.97.2.154 -r1.97.2.155
--- drbd_receiver.c	12 May 2004 10:00:47 -0000	1.97.2.154
+++ drbd_receiver.c	16 May 2004 14:57:05 -0000	1.97.2.155
@@ -1791,9 +1791,17 @@
 				mdev->conf.timeout*HZ/20;
 		}
 
+		/* FIXME this *should* be below drbd_process_ee,
+		 * but that leads to some distributed deadlock :-(
+		 * this needs to be fixed properly, I'd vote for a separate
+		 * msock sender thread, but others will frown upon yet an other
+		 * kernel thread...
+		 *	-- lge
+		 */
+		set_bit(SIGNAL_ASENDER, &mdev->flags);
+
 		if (!drbd_process_ee(mdev,&mdev->done_ee)) goto err;
 
-		set_bit(SIGNAL_ASENDER, &mdev->flags);
 		rv = drbd_recv_short(mdev,buf,expect-received);
 		clear_bit(SIGNAL_ASENDER, &mdev->flags);