[DRBD-cvs] drbd by phil; Fixed a small but anyoing bug introduced...

drbd-user@lists.linbit.com drbd-user@lists.linbit.com
Mon, 3 May 2004 17:59:30 +0200 (CEST)


DRBD CVS committal

Author  : phil
Module  : drbd

Dir     : drbd/drbd


Modified Files:
      Tag: rel-0_7-branch
	drbd_actlog.c 


Log Message:
Fixed a small but anyoing bug introduced with the last commit.
[the worker thread wich controls the resync was locking up...]

===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/Attic/drbd_actlog.c,v
retrieving revision 1.1.2.95
retrieving revision 1.1.2.96
diff -u -3 -r1.1.2.95 -r1.1.2.96
--- drbd_actlog.c	3 May 2004 15:00:33 -0000	1.1.2.95
+++ drbd_actlog.c	3 May 2004 15:59:25 -0000	1.1.2.96
@@ -721,11 +721,11 @@
 	bm_ext = (struct bm_extent*) lc_get(mdev->resync,enr);
 	if (bm_ext) {
 		if(bm_ext->lce.lc_number != enr) {
-			atomic_inc(&mdev->resync_locked);
 			bm_ext->rs_left = bm_count_sectors(mdev->mbds_id,enr);
 			lc_changed(mdev->resync,(struct lc_element*)bm_ext);
 			wake_up(&mdev->al_wait);
 		}
+		if(bm_ext->lce.refcnt == 1) atomic_inc(&mdev->resync_locked);
 		set_bit(BME_NO_WRITES,&bm_ext->flags); // within the lock
 	}
 	rs_flags=mdev->resync->flags;