Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.
well.
I just thought it may have something to do with write hints being
disabled because we have a race were we could forget to clean the flag
after reconnect:
Index: drbd/drbd_receiver.c
===================================================================
--- drbd/drbd_receiver.c (Revision 1914)
+++ drbd/drbd_receiver.c (Arbeitskopie)
@@ -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);
}
Index: drbd/drbd_req-2.4.c
===================================================================
--- drbd/drbd_req-2.4.c (Revision 1914)
+++ drbd/drbd_req-2.4.c (Arbeitskopie)
@@ -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);
--
: Lars Ellenberg Tel +43-1-8178292-0 :
: LINBIT Information Technologies GmbH Fax +43-1-8178292-82 :
: Schoenbrunner Str. 244, A-1120 Vienna/Europe http://www.linbit.com :
__
please use the "List-Reply" function of your email client.