[DRBD-cvs] svn commit by phil - r2050 - in trunk: drbd scripts user - Fixed the user space handlers.

drbd-cvs at lists.linbit.com drbd-cvs at lists.linbit.com
Thu Jan 19 16:28:45 CET 2006


Author: phil
Date: 2006-01-19 16:28:44 +0100 (Thu, 19 Jan 2006)
New Revision: 2050

Modified:
   trunk/drbd/drbd_int.h
   trunk/drbd/drbd_receiver.c
   trunk/drbd/drbd_worker.c
   trunk/scripts/drbd.conf
   trunk/user/drbdadm_main.c
   trunk/user/drbdadm_parser.y
   trunk/user/drbdadm_scanner.fl
Log:
Fixed the user space handlers.


Modified: trunk/drbd/drbd_int.h
===================================================================
--- trunk/drbd/drbd_int.h	2006-01-18 14:13:28 UTC (rev 2049)
+++ trunk/drbd/drbd_int.h	2006-01-19 15:28:44 UTC (rev 2050)
@@ -1074,6 +1074,7 @@
 		      unsigned int cmd, unsigned long arg);
 drbd_disks_t drbd_try_outdate_peer(drbd_dev *mdev);
 extern long drbd_compat_ioctl(struct file *f, unsigned cmd, unsigned long arg);
+extern int drbd_khelper(drbd_dev *mdev, char* cmd);
 
 // drbd_worker.c
 enum RSPauseReason {

Modified: trunk/drbd/drbd_receiver.c
===================================================================
--- trunk/drbd/drbd_receiver.c	2006-01-18 14:13:28 UTC (rev 2049)
+++ trunk/drbd/drbd_receiver.c	2006-01-19 15:28:44 UTC (rev 2050)
@@ -1526,6 +1526,7 @@
 			int got_mutex=!down_interruptible(&mdev->device_mutex);
 			if (got_mutex) self = drbd_set_role(mdev,&sec);
 			if (self || !got_mutex) {
+				drbd_khelper(mdev,"pri-lost-after-sb");
 				drbd_panic("Panic by after-sb-1pri handler\n");
 			} else {
 				WARN("Sucessfully gave up primary role.\n");
@@ -1563,6 +1564,7 @@
 			int got_mutex=!down_interruptible(&mdev->device_mutex);
 			if (got_mutex) self = drbd_set_role(mdev,&sec);
 			if (self || !got_mutex) {
+				drbd_khelper(mdev,"pri-lost-after-sb");
 				drbd_panic("Panic by after-sb-2pri handler\n");
 			} else {
 				WARN("Sucessfully gave up primary role.\n");
@@ -2802,6 +2804,7 @@
 
 	drbd_req_free(req);
 
+	drbd_khelper(mdev,"pri-on-incon-degr");
 	drbd_panic("Got NegDReply. WE ARE LOST. We lost our up-to-date disk.\n");
 
 	// THINK do we have other options, but panic?
@@ -2820,6 +2823,9 @@
 
 	drbd_rs_complete_io(mdev,sector);
 
+
+	// In case we are not primary, we could simply live on...
+
 	drbd_panic("Got NegRSDReply. WE ARE LOST. We lost our up-to-date disk.\n");
 
 	// THINK do we have other options, but panic?

Modified: trunk/drbd/drbd_worker.c
===================================================================
--- trunk/drbd/drbd_worker.c	2006-01-18 14:13:28 UTC (rev 2049)
+++ trunk/drbd/drbd_worker.c	2006-01-19 15:28:44 UTC (rev 2050)
@@ -223,6 +223,7 @@
 	if ( cancel ||
 	     mdev->state.conn < Connected ||
 	     mdev->state.pdsk <= Inconsistent ) {
+		drbd_khelper(mdev,"pri-on-incon-degr");
 		drbd_panic("WE ARE LOST. Local IO failure, no peer.\n");
 
 		// does not make much sense, but anyways...

Modified: trunk/scripts/drbd.conf
===================================================================
--- trunk/scripts/drbd.conf	2006-01-18 14:13:28 UTC (rev 2049)
+++ trunk/scripts/drbd.conf	2006-01-19 15:28:44 UTC (rev 2050)
@@ -133,9 +133,9 @@
     # (=no connection) and has inconsistent data.
     pri-on-incon-degr "halt -f";
 
-    # If suddenly the peer presents a higher generation count
-    # than we have, and we are primary.
-    pri-sees-sec-with-higher-gc "halt -f";
+    # The node is currently primary, but lost the after split brain
+    # auto recovery procedure. As as consequence it should go away.
+    pri-lost-after-sb "halt -f";
 
     # Commands to run in case we need to downgrade the peer's disk 
     # state to "Outdated". Should be implemented by the superior

Modified: trunk/user/drbdadm_main.c
===================================================================
--- trunk/user/drbdadm_main.c	2006-01-18 14:13:28 UTC (rev 2049)
+++ trunk/user/drbdadm_main.c	2006-01-19 15:28:44 UTC (rev 2050)
@@ -203,7 +203,7 @@
   { "dump-md",           admm_generic,  1,1,0 },
   { "set-gi",            admm_generic,  0,1,0 },
   { "pri-on-incon-degr", adm_khelper,   0,1,0 },
-  { "pri-sees-sec-with-higher-gc", adm_khelper, 0,1,0 },
+  { "pri-lost-after-sb", adm_khelper,   0,1,0 },
   { "outdate-peer",      adm_khelper,   0,1,0 },
   { "wait_con_int",      adm_wait_ci,   1,0,1 },
   { "sh-resources",      sh_resources,  0,0,0 },

Modified: trunk/user/drbdadm_parser.y
===================================================================
--- trunk/user/drbdadm_parser.y	2006-01-18 14:13:28 UTC (rev 2049)
+++ trunk/user/drbdadm_parser.y	2006-01-19 15:28:44 UTC (rev 2050)
@@ -258,7 +258,7 @@
 %token <txt> TK_WFC_TIMEOUT TK_DEGR_WFC_TIMEOUT
 %token <txt> TK_KO_COUNT TK_ON_DISCONNECT TK_DIALOG_REFRESH
 %token <txt> TK_ALLOW_TWO_PRIMARIES
-%token <txt> TK_PRI_ON_INCON_DEGR TK_PRI_SEES_SEC_WITH_HIGHER_GC
+%token <txt> TK_PRI_ON_INCON_DEGR TK_PRI_LOST_AFTER_SB
 %token <txt> TK_OUTDATE_PEER TK_CRAM_HMAC_ALG TK_SHARED_SECRET
 %token <txt> TK_AFTER_SB_PRI
 
@@ -464,7 +464,6 @@
 		;
 
 handler_stmt:	  TK_PRI_ON_INCON_DEGR TK_STRING	{ $$=new_opt($1,$2); }
-		| TK_PRI_SEES_SEC_WITH_HIGHER_GC TK_STRING
-		{ $$=new_opt($1,$2); }
+		| TK_PRI_LOST_AFTER_SB TK_STRING	{ $$=new_opt($1,$2); }
 		| TK_OUTDATE_PEER TK_STRING		{ $$=new_opt($1,$2); }
 		;

Modified: trunk/user/drbdadm_scanner.fl
===================================================================
--- trunk/user/drbdadm_scanner.fl	2006-01-18 14:13:28 UTC (rev 2049)
+++ trunk/user/drbdadm_scanner.fl	2006-01-19 15:28:44 UTC (rev 2050)
@@ -305,12 +305,12 @@
 
 <HANDLERS>{
   pri-on-incon-degr	do_assign(STRING); CP; return TK_PRI_ON_INCON_DEGR;
-  pri-sees-sec-with-higher-gc	do_assign(STRING); CP; return TK_PRI_SEES_SEC_WITH_HIGHER_GC;
+  pri-lost-after-sb     do_assign(STRING); CP; return TK_PRI_LOST_AFTER_SB;
   outdate-peer		do_assign(STRING); CP; return TK_OUTDATE_PEER;
   {NDELIM}		{
 	  		  expect_error(
 				"one of 'pri-on-incon-degr|"
-				"pri-sees-sec-with-higher-gc|"
+				"pri-lost-after-sb|"
 				"outdate-peer");
 			}
 }



More information about the drbd-cvs mailing list