diff mbox

multipath_tools: minor rdac message fix and code cleanup

Message ID E463DF2B2E584B4A82673F53D62C2EF48A434FB0@cosmail01.lsi.com (mailing list archive)
State Accepted, archived
Headers show

Commit Message

babu moger April 9, 2010, 8:30 p.m. UTC
None
diff mbox

Patch

--- multipath-tools/libmultipath/checkers/rdac.c.orig	2010-04-08 13:14:52.000000000 -0500
+++ multipath-tools/libmultipath/checkers/rdac.c	2010-04-09 13:57:36.000000000 -0500
@@ -101,24 +101,32 @@  extern int
 libcheck_check (struct checker * c)
 {
 	struct volume_access_inq inq;
+	int ret;
 
 	memset(&inq, 0, sizeof(struct volume_access_inq));
 	if (0 != do_inq(c->fd, 0xC9, &inq, sizeof(struct volume_access_inq))) {
-		MSG(c, MSG_RDAC_DOWN);
-		return PATH_DOWN;
-	} else {
-		if ((inq.PQ_PDT & 0x20) || (inq.PQ_PDT & 0x7f)) {
-			/* LUN not connected*/
-			return PATH_DOWN;
-		}
+		ret = PATH_DOWN;
+		goto done;
+	} else if ((inq.PQ_PDT & 0x20) || (inq.PQ_PDT & 0x7f)) {
+		/* LUN not connected*/
+		ret = PATH_DOWN;
+		goto done;
 	}
 
-	if (inq.avtcvp & 0x1) {
+	ret = ((inq.avtcvp & 0x1) ? PATH_UP : PATH_GHOST);
+
+done:
+	switch (ret) {
+	case PATH_DOWN:
+		MSG(c, MSG_RDAC_DOWN);
+		break;
+	case PATH_UP:
 		MSG(c, MSG_RDAC_UP);
-		return PATH_UP;
-	}
-	else {
+		break;
+	case PATH_GHOST:
 		MSG(c, MSG_RDAC_GHOST);
-		return PATH_GHOST;
+		break;
 	}
+
+	return ret;
 }