[DRBD-cvs] drbd by phil; * A bugfix to the sync_groups feature. I...

drbd-user@lists.linbit.com drbd-user@lists.linbit.com
Wed, 21 Jan 2004 16:16:20 +0100 (CET)


DRBD CVS committal

Author  : phil
Module  : drbd

Dir     : drbd/drbd


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


Log Message:
* A bugfix to the sync_groups feature. It tried to resync resync of
  devices that were not trying to resync.
* A bugfix to drbd_fs.c. It began to send sync requests before it 
  informed the other node that resynchronisation started. 
  If you used the "drbdsetup /dev/nbd/X invalidate" command.

===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/Attic/drbd_dsender.c,v
retrieving revision 1.1.2.57
retrieving revision 1.1.2.58
diff -u -3 -r1.1.2.57 -r1.1.2.58
--- drbd_dsender.c	21 Jan 2004 14:59:05 -0000	1.1.2.57
+++ drbd_dsender.c	21 Jan 2004 15:16:20 -0000	1.1.2.58
@@ -301,14 +301,16 @@
 	for (i=0; i < minor_count; i++) { // find next sync group
 		odev = drbd_conf + i;
 		if ( odev->sync_conf.group > mdev->sync_conf.group
-		     && odev->sync_conf.group < ng ) {
-			ng = odev->sync_conf.group;
+		     && odev->sync_conf.group < ng && 
+		     (odev->cstate==PausedSyncS || odev->cstate==PausedSyncT)){
+		  ng = odev->sync_conf.group;
 		}
 	}
 
 	for (i=0; i < minor_count; i++) { // resume all devices in next group
 		odev = drbd_conf + i;
-		if ( odev->sync_conf.group == ng ) {
+		if ( odev->sync_conf.group == ng &&
+		     (odev->cstate==PausedSyncS || odev->cstate==PausedSyncT)){
 			_drbd_rs_resume(odev);
 		}
 	}
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/drbd_fs.c,v
retrieving revision 1.28.2.46
retrieving revision 1.28.2.47
diff -u -3 -r1.28.2.46 -r1.28.2.47
--- drbd_fs.c	21 Jan 2004 14:59:05 -0000	1.28.2.46
+++ drbd_fs.c	21 Jan 2004 15:16:20 -0000	1.28.2.47
@@ -669,8 +669,8 @@
 		bm_fill_bm(mdev->mbds_id,-1);
 		mdev->rs_total=blk_size[MAJOR_NR][minor]<<1;
 		drbd_write_bm(mdev);
-		drbd_start_resync(mdev,SyncTarget);
 		drbd_send_short_cmd(mdev,BecomeSyncSource);
+		drbd_start_resync(mdev,SyncTarget);
 		break;
 
 	case DRBD_IOCTL_INVALIDATE_REM:
@@ -682,8 +682,8 @@
 		bm_fill_bm(mdev->mbds_id,-1);
 		mdev->rs_total=blk_size[MAJOR_NR][minor]<<1;
 		drbd_write_bm(mdev);
-		drbd_start_resync(mdev,SyncSource);
 		drbd_send_short_cmd(mdev,BecomeSyncTarget);
+		drbd_start_resync(mdev,SyncSource);
 		break;
 
 	case DRBD_IOCTL_SECONDARY_REM: