[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