[DRBD-cvs] r1925 - branches/drbd-0.6/drbd

drbd-cvs at lists.linbit.com drbd-cvs at lists.linbit.com
Thu Aug 25 16:29:16 CEST 2005


Author: lars
Date: 2005-08-25 16:29:15 +0200 (Thu, 25 Aug 2005)
New Revision: 1925

Modified:
   branches/drbd-0.6/drbd/drbd_receiver.c
   branches/drbd-0.6/drbd/drbd_req-2.4.c
Log:

clear the "write hint queued" bit on disconnect.



Modified: branches/drbd-0.6/drbd/drbd_receiver.c
===================================================================
--- branches/drbd-0.6/drbd/drbd_receiver.c	2005-08-25 12:46:37 UTC (rev 1924)
+++ branches/drbd-0.6/drbd/drbd_receiver.c	2005-08-25 14:29:15 UTC (rev 1925)
@@ -1379,6 +1379,9 @@
 
 	clear_bit(DO_NOT_INC_CONCNT,&drbd_conf[minor].flags);
 
+	/* it may still be set, because some unplug was on the fly */
+	if (!disable_io_hints) mdev->flags &= ~(1<<WRITE_HINT_QUEUED);
+
 	printk(KERN_INFO DEVICE_NAME "%d: Connection lost.\n",minor);
 }
 

Modified: branches/drbd-0.6/drbd/drbd_req-2.4.c
===================================================================
--- branches/drbd-0.6/drbd/drbd_req-2.4.c	2005-08-25 12:46:37 UTC (rev 1924)
+++ branches/drbd-0.6/drbd/drbd_req-2.4.c	2005-08-25 14:29:15 UTC (rev 1925)
@@ -253,7 +253,9 @@
 	}
 
 	if(!test_and_set_bit(WRITE_HINT_QUEUED,&mdev->flags)) {
-		queue_task(&mdev->write_hint_tq, &tq_disk);
+		/* if it could not be queued, clear our flag again, too */
+		if (!queue_task(&mdev->write_hint_tq, &tq_disk))
+			clear_bit(WRITE_HINT_QUEUED,&mdev->flags);
 	}
 
 	submit_bh(rw,nbh);



More information about the drbd-cvs mailing list