[DRBD-cvs] r1611 - branches/drbd-0.7/drbd

svn at svn.drbd.org svn at svn.drbd.org
Sun Oct 24 13:20:15 CEST 2004


Author: lars
Date: 2004-10-24 13:20:13 +0200 (Sun, 24 Oct 2004)
New Revision: 1611

Modified:
   branches/drbd-0.7/drbd/drbd_receiver.c
Log:
* wake_up_interruptible did not wake up threads in wait_even(cstate)
* down_interruptible in drbd_send_handshake, just in case some drbdsetup kills us

Modified: branches/drbd-0.7/drbd/drbd_receiver.c
===================================================================
--- branches/drbd-0.7/drbd/drbd_receiver.c	2004-10-21 10:09:14 UTC (rev 1610)
+++ branches/drbd-0.7/drbd/drbd_receiver.c	2004-10-24 11:20:13 UTC (rev 1611)
@@ -1836,7 +1836,7 @@
 		atomic_set(&mdev->ap_pending_cnt,0);
 	}
 
-	wake_up_interruptible(&mdev->cstate_wait);
+	wake_up(&mdev->cstate_wait);
 
 	if ( mdev->state == Primary &&
 	    ( test_bit(DISKLESS,&mdev->flags)
@@ -1883,7 +1883,10 @@
 	Drbd_HandShake_Packet *p = &mdev->data.sbuf.HandShake;
 	int ok;
 
-	down(&mdev->data.mutex);
+	if (down_interruptible(&mdev->data.mutex)) {
+		ERR("interrupted during initial handshake\n");
+		return 0; /* interrupted. not ok. */
+	}
 	memset(p,0,sizeof(*p));
 	p->protocol_version = cpu_to_be32(PRO_VERSION);
 	ok = _drbd_send_cmd( mdev, mdev->data.socket, HandShake,



More information about the drbd-cvs mailing list