[DRBD-cvs] drbd by lars; the assertions triggered on bloodymary,
drbd-user@lists.linbit.com
drbd-user@lists.linbit.com
Wed, 19 May 2004 00:07:01 +0200 (CEST)
DRBD CVS committal
Author : lars
Module : drbd
Dir : drbd/drbd
Modified Files:
Tag: rel-0_7-branch
drbd_receiver.c drbd_req-2.4.c
Log Message:
the assertions triggered on bloodymary,
so we *need* to do it my way.
reduce a race in the request path while exchanging bitmap information
race still remains theoretically...
-- lge
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/drbd_receiver.c,v
retrieving revision 1.97.2.158
retrieving revision 1.97.2.159
diff -u -3 -r1.97.2.158 -r1.97.2.159
--- drbd_receiver.c 18 May 2004 16:20:42 -0000 1.97.2.158
+++ drbd_receiver.c 18 May 2004 22:06:55 -0000 1.97.2.159
@@ -204,7 +204,7 @@
page = drbd_bio_get_page(&e->private_bio);
ONLY_IN_26(
D_ASSERT(page == e->ee_bvec.bv_page);
- // page = e->ee_bvec.bv_page;
+ page = e->ee_bvec.bv_page;
)
kmem_cache_free(drbd_ee_cache, e);
mdev->ee_vacant--;
@@ -325,7 +325,7 @@
e=list_entry(le, struct Tl_epoch_entry, w.list);
ONLY_IN_26(
D_ASSERT(e->private_bio.bi_idx == 0);
- // drbd_ee_init(e,e->ee_bvec.bv_page); // reinitialize
+ drbd_ee_init(e,e->ee_bvec.bv_page); // reinitialize
)
e->block_id = !ID_VACANT;
SET_MAGIC(e);
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/drbd_req-2.4.c,v
retrieving revision 1.33.2.79
retrieving revision 1.33.2.80
diff -u -3 -r1.33.2.79 -r1.33.2.80
--- drbd_req-2.4.c 18 May 2004 16:20:42 -0000 1.33.2.79
+++ drbd_req-2.4.c 18 May 2004 22:06:56 -0000 1.33.2.80
@@ -198,6 +198,8 @@
// down_read(mdev->device_lock);
+ wait_event( mdev->cstate_wait, (volatile int)(mdev->cstate < WFBitMapS || mdev->cstate > WFBitMapT) );
+
local = inc_local(mdev);
// FIXME special case handling of READA ??
if (rw == READ || rw == READA) {