[DRBD-cvs] svn commit by phil - r2409 - trunk/drbd - Make it run
longer that the first barrier or so. That b
drbd-cvs at lists.linbit.com
drbd-cvs at lists.linbit.com
Tue Sep 12 14:36:14 CEST 2006
Author: phil
Date: 2006-09-12 14:36:14 +0200 (Tue, 12 Sep 2006)
New Revision: 2409
Modified:
trunk/drbd/drbd_req.c
Log:
Make it run longer that the first barrier or so.
That bug manifested itself by crashes here:
/* see drbd_make_request_common just after it grabsthe req_lock */
D_ASSERT(test_bit(ISSUE_BARRIER, &mdev->flags) == 0);
req->epoch = mdev->newest_barrier->br_number;
list_add(&req->tl_requests,&mdev->newest_barrier->requests); <=<<==<<<===
/* mark the current epoch as closed,
* in case it outgrew the limit */
But it happened by not clearing the unused_spare_barrier member of
mdev.
Modified: trunk/drbd/drbd_req.c
===================================================================
--- trunk/drbd/drbd_req.c 2006-09-12 10:21:02 UTC (rev 2408)
+++ trunk/drbd/drbd_req.c 2006-09-12 12:36:14 UTC (rev 2409)
@@ -856,6 +856,7 @@
test_and_clear_bit(ISSUE_BARRIER,&mdev->flags)) {
struct drbd_barrier *b = mdev->unused_spare_barrier;
b = _tl_add_barrier(mdev,b);
+ mdev->unused_spare_barrier = NULL;
b->w.cb = w_send_barrier;
drbd_queue_work(&mdev->data.work, &b->w);
} else {
More information about the drbd-cvs
mailing list