[DRBD-cvs] drbd by phil; * removed the w_start_resync() function

drbd-user@lists.linbit.com drbd-user@lists.linbit.com
Sat, 17 Jan 2004 21:05:34 +0100 (CET)


DRBD CVS committal

Author  : phil
Module  : drbd

Dir     : drbd/drbd


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


Log Message:
* removed the w_start_resync() function
* Call w_resync_finished() on both nodes if the inittial rs_total == 0

===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/Attic/drbd_dsender.c,v
retrieving revision 1.1.2.51
retrieving revision 1.1.2.52
diff -u -3 -r1.1.2.51 -r1.1.2.52
--- drbd_dsender.c	16 Jan 2004 12:35:44 -0000	1.1.2.51
+++ drbd_dsender.c	17 Jan 2004 20:05:34 -0000	1.1.2.52
@@ -181,29 +181,6 @@
 	return 1;
 }
 
-STATIC int w_start_resync(drbd_dev *mdev, struct drbd_work *w)
-{
-	PARANOIA_BUG_ON(w != &mdev->resync_work);
-
-	if(mdev->cstate == SyncTarget) {
-		mdev->gen_cnt[Flags] &= ~MDF_Consistent;
-		bm_reset(mdev->mbds_id);
-		w->cb = w_make_resync_request;
-		__drbd_queue_work(mdev,&mdev->data.work,w);
-	} else {
-		// If we are SyncSource we must be consistent :)
-		w->cb = w_resync_inactive;
-		mdev->gen_cnt[Flags] |= MDF_Consistent;
-		if ( mdev->rs_total == 0 ) {
-			w->cb = w_resync_finished;
-			__drbd_queue_work(mdev,&mdev->data.work,w);
-		}
-	}
-	drbd_md_write(mdev);
-
-	return 1;
-}
-
 int w_resync_finished(drbd_dev* mdev, struct drbd_work* w)
 {
 	unsigned long dt;
@@ -277,8 +254,23 @@
 	PARANOIA_BUG_ON(!list_empty(&mdev->resync_work.list));
 	PARANOIA_BUG_ON(mdev->resync_work.cb != w_resync_inactive);
 
-	mdev->resync_work.cb = w_start_resync;
-	__drbd_queue_work(mdev,&mdev->data.work,&mdev->resync_work);
+	if ( mdev->rs_left == 0 ) {
+		mdev->resync_work.cb = w_resync_finished;
+		__drbd_queue_work(mdev,&mdev->data.work,&mdev->resync_work);
+		return;
+	}
+
+	if(mdev->cstate == SyncTarget) {
+		mdev->gen_cnt[Flags] &= ~MDF_Consistent;
+		bm_reset(mdev->mbds_id);
+		mdev->resync_work.cb = w_make_resync_request;
+		__drbd_queue_work(mdev,&mdev->data.work,&mdev->resync_work);
+	} else {
+		// If we are SyncSource we must be consistent :)
+		mdev->gen_cnt[Flags] |= MDF_Consistent;
+	}
+
+	drbd_md_write(mdev);
 }
 
 int drbd_worker(struct Drbd_thread *thi)