[DRBD-cvs] svn commit by phil - r2044 - in trunk: . drbd drbd/linux user - * Removed a bug that was introduced with the big code m

drbd-cvs at lists.linbit.com drbd-cvs at lists.linbit.com
Sat Jan 7 20:27:28 CET 2006


Author: phil
Date: 2006-01-07 20:27:25 +0100 (Sat, 07 Jan 2006)
New Revision: 2044

Modified:
   trunk/ROADMAP
   trunk/drbd/drbd_bitmap.c
   trunk/drbd/drbd_fs.c
   trunk/drbd/drbd_int.h
   trunk/drbd/drbd_main.c
   trunk/drbd/drbd_receiver.c
   trunk/drbd/drbd_strings.c
   trunk/drbd/drbd_worker.c
   trunk/drbd/linux/drbd.h
   trunk/user/Makefile
   trunk/user/drbdadm_main.c
   trunk/user/drbdsetup.c
Log:
* Removed a bug that was introduced with the big code merge in drbdadm
* Replaced the nummeric error codes of drbd_set_state() with symbolic ones.
* Removed an erronous check of drbd_set_state()


Modified: trunk/ROADMAP
===================================================================
--- trunk/ROADMAP	2005-12-29 21:58:57 UTC (rev 2043)
+++ trunk/ROADMAP	2006-01-07 19:27:25 UTC (rev 2044)
@@ -646,9 +646,7 @@
    99% DONE
 
 24 Make it possible to hot-add disk drives == Atomic configuration changes.
-   Missing: Rewrite size determination code. It needs to fail in case
-            there is already a primary node in the cluster, and the
-            to attached device is smaller than the current size.
+   Missing: Think about and test detach/attach of the primary's disk.
 
    80% DONE [ The net and disk config changes are atomic by now ]
 

Modified: trunk/drbd/drbd_bitmap.c
===================================================================
--- trunk/drbd/drbd_bitmap.c	2005-12-29 21:58:57 UTC (rev 2043)
+++ trunk/drbd/drbd_bitmap.c	2006-01-07 19:27:25 UTC (rev 2044)
@@ -596,7 +596,6 @@
  */
 int drbd_bm_read_sect(drbd_dev *mdev,unsigned long enr)
 {
-#warning check outcome of addition of sector_t/u64/s32
 	sector_t on_disk_sector = mdev->bc->md.md_offset + mdev->bc->md.bm_offset + enr;
 	int bm_words, num_words, offset, err  = 0;
 

Modified: trunk/drbd/drbd_fs.c
===================================================================
--- trunk/drbd/drbd_fs.c	2005-12-29 21:58:57 UTC (rev 2043)
+++ trunk/drbd/drbd_fs.c	2006-01-07 19:27:25 UTC (rev 2044)
@@ -48,6 +48,46 @@
 char *drbd_sec_holder = "Secondary DRBD cannot be bd_claimed ;)";
 char *drbd_m_holder = "Hands off! this is DRBD's meta data device.";
 
+
+
+/* initializes the md.*_offset members, so we are able to find
+ * the on disk meta data */
+STATIC void drbd_md_set_sector_offsets(drbd_dev *mdev,
+				       struct drbd_backing_dev *bdev)
+{
+	sector_t md_size_sect = 0;
+	switch(bdev->md_index) {
+	default:
+	case DRBD_MD_INDEX_FLEX_EXT:
+		/* just occupy the full device; unit: sectors */
+		bdev->md.md_size_sect = drbd_get_capacity(bdev->md_bdev);
+		bdev->md.md_offset = 0;
+		bdev->md.al_offset = MD_AL_OFFSET;
+		bdev->md.bm_offset = MD_BM_OFFSET;
+		break;
+	case DRBD_MD_INDEX_INTERNAL:
+	case DRBD_MD_INDEX_FLEX_INT:
+		bdev->md.md_offset = drbd_md_ss__(mdev,bdev);
+		/* al size is still fixed */
+		bdev->md.al_offset = -MD_AL_MAX_SIZE;
+                //LGE FIXME max size check missing.
+		/* we need (slightly less than) ~ this much bitmap sectors: */
+		md_size_sect = drbd_get_capacity(bdev->backing_bdev);
+		md_size_sect = ALIGN(md_size_sect,BM_SECT_PER_EXT);
+		md_size_sect = BM_SECT_TO_EXT(md_size_sect);
+		md_size_sect = ALIGN(md_size_sect,8);
+
+		/* plus the "drbd meta data super block",
+		 * and the activity log; */
+		md_size_sect += MD_BM_OFFSET;
+
+		bdev->md.md_size_sect = md_size_sect;
+		/* bitmap offset is adjusted by 'super' block size */
+		bdev->md.bm_offset   = -md_size_sect + MD_AL_OFFSET;
+		break;
+	}
+}
+
 STATIC int do_determin_dev_size(struct Drbd_Conf* mdev);
 int drbd_determin_dev_size(struct Drbd_Conf* mdev)
 {
@@ -69,7 +109,7 @@
 
 	la_size_changed = (la_size != mdev->bc->md.la_size_sect);
 
-#warning flexible device size!! is this the right thing to test?
+	//LGE: flexible device size!! is this the right thing to test?
 	md_moved = prev_first_sect != drbd_md_first_sector(mdev->bc)
 		|| prev_size       != mdev->bc->md.md_size_sect;
 
@@ -390,7 +430,7 @@
 		goto release_bdev2_fail_ioctl;
 	}
 
-	if(drbd_request_state(mdev,NS(disk,Attaching)) <= 0 ) {
+	if(drbd_request_state(mdev,NS(disk,Attaching)) < SS_Success ) {
 		retcode = StateNotAllowed;
 		goto release_bdev2_fail_ioctl;
 	}
@@ -475,7 +515,7 @@
 			nds = Inconsistent;
 		}
 		
-		if(drbd_request_state(mdev,NS(disk,nds)) > 0) {
+		if(drbd_request_state(mdev,NS(disk,nds)) >= SS_Success ) {
 			drbd_thread_start(&mdev->worker);
 		}
 	}
@@ -680,7 +720,7 @@
 	mdev->cram_hmac_tfm = tfm;
 
 	drbd_thread_start(&mdev->worker);
-	if( drbd_request_state(mdev,NS(conn,Unconnected)) > 0) {
+	if( drbd_request_state(mdev,NS(conn,Unconnected)) >= SS_Success ) {
 		drbd_thread_start(&mdev->receiver);
 	}
 
@@ -781,7 +821,7 @@
 	if(nps != disk_mask) rs.pdsk = nps;
 	r = _drbd_set_state(mdev, rs, 0);
 
-	if ( r == -2 ) {
+	if ( r == SS_NoConsistnetDisk ) {
 		if ( newstate & DontBlameDrbd && mdev->state.disk<UpToDate) {
 			rs.disk = UpToDate;
 			forced = 1;
@@ -792,8 +832,8 @@
 	ns = mdev->state;
 	spin_unlock_irq(&mdev->req_lock);
 
-	if ( r == 2 ) { rv = 0; goto fail; }
-	if ( r == -7 && nps == disk_mask ) {
+	if ( r == SS_NothingToDo ) { rv = 0; goto fail; }
+	if ( r == SS_PrimaryNOP && nps == disk_mask ) {
 		nps = drbd_try_outdate_peer(mdev);
 		if ( newstate & DontBlameDrbd && nps > Outdated ) {
 			WARN("Forced into split brain situation!\n");
@@ -801,7 +841,7 @@
 		}
 		goto retry;
 	}
-	if ( r <= 0 ) {
+	if ( r < SS_Success ) {
 		print_st_err(mdev,os,rs,r);
 		*arg = r;
 		rv = -EIO;
@@ -967,8 +1007,8 @@
 	ns = mdev->state;
 	spin_unlock_irq(&mdev->req_lock);
 
-	if( r == 2 ) { return 0; }
-	if( r <= 0 ) {
+	if( r == SS_NothingToDo ) { return 0; }
+	if( r < SS_Success ) {
 		return -ENETRESET;
 	}
 
@@ -1007,13 +1047,13 @@
 	ns = mdev->state;
 	spin_unlock_irq(&mdev->req_lock);
 
-	if( r == 2 ) return 0;
+	if( r == SS_NothingToDo ) return 0;
 	if( r == -999 ) {
 		return -EINVAL;
 	}
 	after_state_ch(mdev,os,ns); // TODO decide if neccesarry.
 
-	if( r <= 0 ) {
+	if( r < SS_Success ) {
 		err = put_user(r, reason);
 		if(!err) err=-EIO;
 		return err;
@@ -1062,8 +1102,8 @@
 	spin_unlock_irq(&mdev->req_lock);
 	after_state_ch(mdev,os,ns);
 
-	if ( r == 2 )  return 0;
-	if ( r == -7 ) {
+	if ( r == SS_NothingToDo )  return 0;
+	if ( r == SS_PrimaryNOP ) {
 		drbd_send_short_cmd(mdev, OutdateRequest);
 		wait_event(mdev->cstate_wait,
 			   mdev->state.pdsk <= Outdated ||
@@ -1073,7 +1113,7 @@
 		r = drbd_request_state(mdev,NS(conn,StandAlone));
 	}
 
-	if( r <= 0 ) return -ENODATA;
+	if( r < SS_Success ) return -ENODATA;
 
 	if ( mdev->cram_hmac_tfm ) {
 		crypto_free_tfm(mdev->cram_hmac_tfm);
@@ -1292,8 +1332,8 @@
 		r = drbd_request_state(mdev,NS2(disk,Inconsistent,
 					        conn,WFBitMapT));
 
-		if( r == 2 ) { break; }
-		if( r <= 0 ) {
+		if( r == SS_NothingToDo ) { break; }
+		if( r < SS_Success ) {
 			err = -EINPROGRESS;
 			break;
 		}
@@ -1332,8 +1372,8 @@
 		r = drbd_request_state(mdev,NS2(pdsk,Inconsistent,
 					        conn,WFBitMapS));
 
-		if( r == 2 ) { break; }
-		if( r <= 0 ) {
+		if( r == SS_NothingToDo ) { break; }
+		if( r < SS_Success ) {
 			err = -EINPROGRESS;
 			break;
 		}

Modified: trunk/drbd/drbd_int.h
===================================================================
--- trunk/drbd/drbd_int.h	2005-12-29 21:58:57 UTC (rev 2043)
+++ trunk/drbd/drbd_int.h	2006-01-07 19:27:25 UTC (rev 2044)
@@ -1310,44 +1310,7 @@
 	}
 }
 
-/* initializes the md.*_offset members, so we are able to find
- * the on disk meta data */
-static inline void drbd_md_set_sector_offsets(drbd_dev *mdev,
-					      struct drbd_backing_dev *bdev)
-{
-	sector_t md_size_sect = 0;
-	bdev->md.md_offset = drbd_md_ss__(mdev,bdev);
-	switch(bdev->md_index) {
-	default:
-	case DRBD_MD_INDEX_FLEX_EXT:
-		/* just occupy the full device; unit: sectors */
-		bdev->md.md_size_sect = drbd_get_capacity(bdev->md_bdev);
-		bdev->md.md_offset = 0;
-		bdev->md.al_offset = MD_AL_OFFSET;
-		bdev->md.bm_offset = MD_BM_OFFSET;
-		break;
-	case DRBD_MD_INDEX_INTERNAL:
-	case DRBD_MD_INDEX_FLEX_INT:
-		/* al size is still fixed */
-		bdev->md.al_offset = -MD_AL_MAX_SIZE;
-#warning FIXME max size check missing.
-		/* we need (slightly less than) ~ this much bitmap sectors: */
-		md_size_sect = drbd_get_capacity(bdev->backing_bdev);
-		md_size_sect = ALIGN(md_size_sect,BM_SECT_PER_EXT);
-		md_size_sect = BM_SECT_TO_EXT(md_size_sect);
-		md_size_sect = ALIGN(md_size_sect,8);
 
-		/* plus the "drbd meta data super block",
-		 * and the activity log; */
-		md_size_sect += MD_BM_OFFSET;
-
-		bdev->md.md_size_sect = md_size_sect;
-		/* bitmap offset is adjusted by 'super' block size */
-		bdev->md.bm_offset   = -md_size_sect + MD_AL_OFFSET;
-		break;
-	}
-}
-
 static inline void
 _drbd_queue_work(struct drbd_work_queue *q, struct drbd_work *w)
 {

Modified: trunk/drbd/drbd_main.c
===================================================================
--- trunk/drbd/drbd_main.c	2005-12-29 21:58:57 UTC (rev 2043)
+++ trunk/drbd/drbd_main.c	2006-01-07 19:27:25 UTC (rev 2044)
@@ -563,13 +563,14 @@
 /* PRE TODO: Should return ernno numbers from the pre-state-change checks. */
 int _drbd_set_state(drbd_dev* mdev, drbd_state_t ns,enum chg_state_flags flags)
 {
-	MUST_HOLD(&mdev->req_lock);
 	drbd_state_t os;
-	int rv=1,warn_sync_abort=0;
+	int rv=SS_Success, warn_sync_abort=0;
 
+	MUST_HOLD(&mdev->req_lock);
+
 	os = mdev->state;
 
-	if( ns.i == os.i ) return 2;
+	if( ns.i == os.i ) return SS_NothingToDo;
 
 	/*  State sanitising  */
 	if( ns.conn < Connected ) {
@@ -643,40 +644,39 @@
 
 		if(inc_net(mdev)) {
 			if( !mdev->net_conf->two_primaries &&
-			    ns.role == Primary && ns.peer == Primary ) rv=-1;
+			    ns.role == Primary && ns.peer == Primary ) 
+				rv=SS_TowPrimaries;
 			dec_net(mdev);
 		}
 
 		if( rv <= 0 ) /* already found a reason to abort */;
 		else if( ns.role == Primary && ns.conn < Connected &&
-			 ns.disk <= Outdated ) rv=-2;
+			 ns.disk <= Outdated ) rv=SS_NoConsistnetDisk;
 
 		else if( test_bit(SPLIT_BRAIN_FIX,&mdev->flags) &&
 			 ns.role == Primary && ns.conn < Connected &&
-			 ns.pdsk >= DUnknown ) rv=-7;
+			 ns.pdsk >= DUnknown ) rv=SS_PrimaryNOP;
 
 		else if( ns.role == Primary && ns.disk <= Inconsistent &&
-			 ns.pdsk <= Inconsistent ) rv=-2;
+			 ns.pdsk <= Inconsistent ) rv=SS_NoConsistnetDisk;
 
-		else if( ns.peer == Primary && ns.pdsk <= Inconsistent )
-			rv=-3;
-
 		else if( ns.conn > Connected &&
-			 ns.disk < UpToDate && ns.pdsk < UpToDate ) rv=-4;
+			 ns.disk < UpToDate && ns.pdsk < UpToDate ) 
+			rv=SS_BothInconsistent;
 
 		else if( ns.conn > Connected &&
 			 (ns.disk == Diskless || ns.pdsk == Diskless ) )
-			rv=-5;
+			rv=SS_SyncingDiskless;
 
 		else if( (ns.conn == Connected ||
 			  ns.conn == SkippedSyncS ||
 			  ns.conn == WFBitMapS ||
 			  ns.conn == SyncSource ||
 			  ns.conn == PausedSyncS) &&
-			 ns.disk == Outdated ) rv=-6;
+			 ns.disk == Outdated ) rv=SS_ConnectedOutdates;
 	}
 
-	if(rv <= 0) {
+	if(rv < SS_Success) {
 		if( flags & ChgStateVerbose ) print_st_err(mdev,os,ns,rv);
 		return rv;
 	}
@@ -2148,6 +2148,10 @@
 	printk(KERN_ERR "DRBD_MAX_SECTORS_FLEX = %llu\n",DRBD_MAX_SECTORS_FLEX);
 	return -EBUSY;
 #endif
+#ifdef __arch_um__
+	printk(KERN_INFO "drbd_module = 0x%p core = 0x%p\n",
+	       THIS_MODULE,THIS_MODULE->module_core);
+#endif
 
 	if (sizeof(Drbd_HandShake_Packet) != 80) {
 		printk(KERN_ERR DEVICE_NAME
@@ -2383,6 +2387,9 @@
 	sector_t sector;
 	int i;
 
+	if(!mdev->bc) return; // because of drbd_check_al_size(mdev) in 
+			      // drbd_ioctl_set_disk() should be removed....
+
 	ERR_IF(!inc_md_only(mdev,Attaching)) return;
 
 	down(&mdev->md_io_mutex);

Modified: trunk/drbd/drbd_receiver.c
===================================================================
--- trunk/drbd/drbd_receiver.c	2005-12-29 21:58:57 UTC (rev 2043)
+++ trunk/drbd/drbd_receiver.c	2006-01-07 19:27:25 UTC (rev 2044)
@@ -635,7 +635,7 @@
 	D_ASSERT(mdev->state.conn > StandAlone);
 	D_ASSERT(!mdev->data.socket);
 
-	if(drbd_request_state(mdev,NS(conn,WFConnection)) <= 0 ) return 0;
+	if(drbd_request_state(mdev,NS(conn,WFConnection)) < SS_Success ) return 0;
 
 	clear_bit(UNIQUE, &mdev->flags);
 	while(1) {
@@ -705,7 +705,7 @@
 	mdev->meta.socket = msock;
 	mdev->last_received = jiffies;
 
-	if(drbd_request_state(mdev,NS(conn,WFReportParams)) <= 0) return 0;
+	if(drbd_request_state(mdev,NS(conn,WFReportParams)) < SS_Success) return 0;
 	D_ASSERT(mdev->asender.task == NULL);
 
 	h = drbd_do_handshake(mdev);
@@ -1875,7 +1875,7 @@
 
 		if(nconn == conn_mask) return FALSE;
 
-		if(drbd_request_state(mdev,NS(conn,nconn)) <= 0) {
+		if(drbd_request_state(mdev,NS(conn,nconn)) < SS_Success) {
 			drbd_force_state(mdev,NS(conn,StandAlone));
 			drbd_thread_stop_nowait(&mdev->receiver);
 			return FALSE;
@@ -1970,7 +1970,7 @@
 	spin_unlock_irq(&mdev->req_lock);
 	after_state_ch(mdev,os,ns);
 
-	if(rv <= 0) {
+	if(rv < SS_Success) {
 		drbd_force_state(mdev,NS(conn,StandAlone));
 		drbd_thread_stop_nowait(&mdev->receiver);
 		return FALSE;
@@ -2044,7 +2044,7 @@
 		ok = drbd_send_bitmap(mdev);
 		if (!ok) goto out;
 		ok = drbd_request_state(mdev,NS(conn,WFSyncUUID));
-		D_ASSERT( ok == 1 );
+		D_ASSERT( ok == SS_Success );
 	} else {
 		ERR("unexpected cstate (%s) in receive_bitmap\n",
 		    conns_to_name(mdev->state.conn));
@@ -2130,9 +2130,9 @@
 	drbd_bm_set_all(mdev);
 	drbd_bm_write(mdev);
 	ok = drbd_request_state(mdev,NS(conn,WFSyncUUID));
-	D_ASSERT( ok == 1 );
+	D_ASSERT( ok == SS_Success );
 	drbd_bm_unlock(mdev);
-	return ok == 1 ? TRUE : FALSE;
+	return ok == SS_Success ? TRUE : FALSE;
 }
 
 STATIC int receive_BecomeSyncSource(drbd_dev *mdev, Drbd_Header *h)
@@ -2198,7 +2198,7 @@
 
 	r = drbd_request_state(mdev,NS2(pdsk,Outdated,conn,TearDown));
 	WARN("r=%d\n",r);
-	D_ASSERT(r >= 0);
+	D_ASSERT(r >= SS_Success);
 	drbd_md_write(mdev); // because drbd_request_state created a new UUID.
 
 	return TRUE;

Modified: trunk/drbd/drbd_strings.c
===================================================================
--- trunk/drbd/drbd_strings.c	2005-12-29 21:58:57 UTC (rev 2043)
+++ trunk/drbd/drbd_strings.c	2006-01-07 19:27:25 UTC (rev 2044)
@@ -61,13 +61,14 @@
 };
 
 static const char *drbd_state_sw_errors[] = {
-	[1] = "Multiple primaries now allowed by config",
-	[2] = "Refusing to be Primary without at least one consistent disk",
-	[3] = "Refusing to make peer Primary without disk",
-	[4] = "Refusing to be inconsistent on both nodes",
-	[5] = "Refusing to be syncing and diskless",
-	[6] = "Refusing to be Outdated while Connected",
-	[7] = "Refusing to be Primary while peer is not outdated",
+	[-SS_TowPrimaries] = "Multiple primaries now allowed by config",
+	[-SS_NoConsistnetDisk] = 
+		"Refusing to be Primary without at least one consistent disk",
+	[-SS_REMOVE_ME] = "Refusing to make peer Primary without disk",
+	[-SS_BothInconsistent] = "Refusing to be inconsistent on both nodes",
+	[-SS_SyncingDiskless] = "Refusing to be syncing and diskless",
+	[-SS_ConnectedOutdates] = "Refusing to be Outdated while Connected",
+	[-SS_PrimaryNOP] = "Refusing to be Primary while peer is not outdated",
 };
 
 const char* conns_to_name(drbd_conns_t s) {
@@ -86,8 +87,8 @@
 		               : drbd_disk_s_names[s];
 }
 
-const char* set_st_err_name(int err) {
-	return err < -7 ? "TOO_SMALL" :
-	       err > -1 ? "TOO_LARGE"
+const char* set_st_err_name(set_st_err_t err) {
+	return err < SS_PrimaryNOP ? "TOO_SMALL" :
+	       err > SS_TowPrimaries ? "TOO_LARGE"
 		        : drbd_state_sw_errors[-err];
 }

Modified: trunk/drbd/drbd_worker.c
===================================================================
--- trunk/drbd/drbd_worker.c	2005-12-29 21:58:57 UTC (rev 2043)
+++ trunk/drbd/drbd_worker.c	2006-01-07 19:27:25 UTC (rev 2044)
@@ -596,7 +596,7 @@
 			mod_timer(&mdev->resync_timer,jiffies);
 		}
 	}
-	return r != 2;
+	return r != SS_NothingToDo;
 }
 
 /** 
@@ -639,7 +639,7 @@
 		INFO("Resync suspended by %s.\n",reason_txt[reason]);
 	}
 
-	return r != 2;
+	return r != SS_NothingToDo;
 }
 
 STATIC int _drbd_may_sync_now(drbd_dev *mdev)
@@ -794,7 +794,7 @@
 
 	r = _drbd_set_state(mdev,ns,ChgStateVerbose);
 
-	if ( r==1 ) {
+	if ( r == SS_Success ) {
 		mdev->rs_total     =
 		mdev->rs_mark_left = drbd_bm_total_weight(mdev);
 		mdev->rs_paused    = 0;
@@ -804,7 +804,7 @@
 	}
 	drbd_global_unlock();
 
-	if ( r==1 ) {
+	if ( r == SS_Success ) {
 		after_state_ch(mdev,os,ns);
 
 		INFO("Began resync as %s (will sync %lu KB [%lu bits set]).\n",

Modified: trunk/drbd/linux/drbd.h
===================================================================
--- trunk/drbd/linux/drbd.h	2005-12-29 21:58:57 UTC (rev 2043)
+++ trunk/drbd/linux/drbd.h	2006-01-07 19:27:25 UTC (rev 2044)
@@ -254,11 +254,24 @@
 	unsigned int i;
 } drbd_state_t;
 
+typedef enum {
+	SS_NothingToDo=2,
+	SS_Success=1,
+	SS_UnknownError=0,
+	SS_TowPrimaries=-1,
+	SS_NoConsistnetDisk=-2,
+	SS_REMOVE_ME=-3,
+	SS_BothInconsistent=-4,
+	SS_SyncingDiskless=-5,
+	SS_ConnectedOutdates=-6,
+	SS_PrimaryNOP=-7
+} set_st_err_t;
+
 /* from drbd_strings.c */
 extern const char* conns_to_name(drbd_conns_t);
 extern const char* roles_to_name(drbd_role_t);
 extern const char* disks_to_name(drbd_disks_t);
-extern const char* set_st_err_name(int);
+extern const char* set_st_err_name(set_st_err_t);
 
 #ifndef BDEVNAME_SIZE
 # define BDEVNAME_SIZE 32

Modified: trunk/user/Makefile
===================================================================
--- trunk/user/Makefile	2005-12-29 21:58:57 UTC (rev 2043)
+++ trunk/user/Makefile	2006-01-07 19:27:25 UTC (rev 2044)
@@ -17,7 +17,7 @@
 # the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
 #
 
-CFLAGS = -g -O2 -c -W -Wall -I../drbd -Werror
+CFLAGS = -g -O2 -c -W -Wall -I../drbd
 CC = gcc
 
 drbdadm-obj = drbdadm_scanner.o drbdadm_parser.o drbdadm_main.o \

Modified: trunk/user/drbdadm_main.c
===================================================================
--- trunk/user/drbdadm_main.c	2005-12-29 21:58:57 UTC (rev 2043)
+++ trunk/user/drbdadm_main.c	2006-01-07 19:27:25 UTC (rev 2044)
@@ -458,11 +458,6 @@
 {
   char **path;
 
-  if (drbdsetup) {
-    free(drbdsetup);
-    drbdsetup = NULL;
-  }
-
   path=pathes;
   while(*path) {
     if(access(*path,X_OK)==0) {
@@ -1301,6 +1296,7 @@
   struct d_resource *res,*tmp;
   char *env_drbd_nodename = NULL;
 
+  drbdsetup=NULL;
   drbdmeta=NULL;
   dry_run=0;
   yyin=NULL;

Modified: trunk/user/drbdsetup.c
===================================================================
--- trunk/user/drbdsetup.c	2005-12-29 21:58:57 UTC (rev 2043)
+++ trunk/user/drbdsetup.c	2006-01-07 19:27:25 UTC (rev 2044)
@@ -1047,7 +1047,7 @@
       if(err==EIO) 
 	{
 	  fprintf(stderr,"%s\n",set_st_err_name(reason));
-	  if(reason == -2) return 17;
+	  if(reason == SS_NoConsistnetDisk) return 17;
 	}
       return 20;
     }



More information about the drbd-cvs mailing list