[Ocfs2-tools-commits] zab commits r396 - trunk/mkfs.ocfs2

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Fri Nov 12 16:52:05 CST 2004


Author: zab
Date: 2004-11-12 16:52:03 -0600 (Fri, 12 Nov 2004)
New Revision: 396

Modified:
   trunk/mkfs.ocfs2/mkfs.c
Log:
o have mkfs honor the number of blocks specified on the command line


Modified: trunk/mkfs.ocfs2/mkfs.c
===================================================================
--- trunk/mkfs.ocfs2/mkfs.c	2004-11-12 01:27:05 UTC (rev 395)
+++ trunk/mkfs.ocfs2/mkfs.c	2004-11-12 22:52:03 UTC (rev 396)
@@ -205,6 +205,7 @@
 	uint32_t cluster_size;
 	uint32_t cluster_size_bits;
 
+	uint64_t specified_size_in_blocks;
 	uint64_t volume_size_in_bytes;
 	uint32_t volume_size_in_clusters;
 	uint64_t volume_size_in_blocks;
@@ -688,12 +689,13 @@
 	device_name = argv[optind];
 	optind++;
 
+	s = malloc(sizeof(State));
+	memset(s, 0, sizeof(State));
+
 	if (optind < argc) {
-		unsigned long val;
-
-		val = strtoul(argv[optind], &dummy, 0);
-
-		if ((*dummy) || (val > 0xffffffffUL)) {
+		s->specified_size_in_blocks = strtoull(argv[optind], &dummy,
+						       0);
+		if ((*dummy)) {
 			com_err(progname, 0, "Block count bad - %s",
 				argv[optind]);
 			exit(1);
@@ -711,8 +713,6 @@
 	if (show_version)
 		exit(0);
 
-	s = malloc(sizeof(State));
-	memset(s, 0, sizeof(State));
 
 	s->progname      = progname;
 
@@ -844,6 +844,19 @@
 	if (!s->volume_size_in_blocks) {
 		err = ocfs2_get_device_size(s->device_name, s->blocksize, &ret);
 		s->volume_size_in_blocks = ret;
+		if (s->specified_size_in_blocks) {
+			if (s->specified_size_in_blocks > 
+			    s->volume_size_in_blocks) {
+				printf("%"PRIu64" blocks were specified and "
+				       "this is greater than the %"PRIu64" "
+				       "blocks that make up %s.\n", 
+				       s->specified_size_in_blocks,
+				       s->volume_size_in_blocks, 
+				       s->device_name);
+				exit(1);
+			}
+			s->volume_size_in_blocks = s->specified_size_in_blocks;
+		}
 	}
 
 	s->volume_size_in_bytes = s->volume_size_in_blocks * s->blocksize;



More information about the Ocfs2-tools-commits mailing list