Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > d236c5da97a239a1b6991cfba2865b66 > files > 116

cman-2.0.115-68.el5_6.1.src.rpm

From 5b5c8300ef6f8c8d2105baba7379607d45ce1d84 Mon Sep 17 00:00:00 2001
From: Tatsuo Kawasaki <kawasaki@redhat.com>
Date: Fri, 12 Feb 2010 14:42:52 -0500
Subject: [PATCH] qdisk: mkqdisk argument positioning

mkqdisk debug option (-d) doesn't work after -L option.

This works:
  mkqdisk -d -L

This should also work:
  mkqdisk -L -d

This patch fixes the behavior.

Resolves: rhbz#555246

Signed-off-by: Lon Hohberger <lhh@redhat.com>
---
 cman/qdisk/mkqdisk.c |   23 ++++++++++++++++-------
 1 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/cman/qdisk/mkqdisk.c b/cman/qdisk/mkqdisk.c
index 46d6b63..6afdf94 100644
--- a/cman/qdisk/mkqdisk.c
+++ b/cman/qdisk/mkqdisk.c
@@ -37,7 +37,7 @@ main(int argc, char **argv)
 {
 	char device[128];
 	char *newdev = NULL, *newlabel = NULL;
-	int rv, verbose_level = 1;
+	int rv, flg = 0, verbose_level = 1;
 
 	printf("mkqdisk v0.6.0\n");
 
@@ -48,13 +48,12 @@ main(int argc, char **argv)
 			break;
 		case 'L':
 			/* List */
-			close(2);
-			return find_partitions(NULL, NULL, 0, verbose_level);
-			break;
+			flg = rv;
+ 			break;
 		case 'f':
-			close(2);
-			return find_partitions( optarg, device,
-					       sizeof(device), verbose_level);
+			flg = rv;
+			newlabel = optarg;
+			break;
 		case 'c':
 			newdev = optarg;
 			break;
@@ -70,6 +69,16 @@ main(int argc, char **argv)
 		}
 	}
 
+	/* list */
+	if (flg == 'L') {
+		close(2);
+		return find_partitions(NULL, NULL, 0, verbose_level);
+	} else if (flg == 'f') {
+		close(2);
+		return find_partitions( newlabel, device,
+				       sizeof(device), verbose_level);
+	}
+
 	if (!newdev && !newlabel) {
 		printf("usage: mkqdisk -L | -f <label> | -c "
 		       "<device> -l <label>\n");
-- 
1.7.2.3