[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)