[PATCH] mkfs.minix: add -{1,2,3} options

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



To be applied on top of the die removal patch.

From: Davidlohr Bueso <dave@xxxxxxx>
Date: Thu, 7 Apr 2011 16:39:37 -0300	
Subject: [PATCH] mkfs.minix: add -{1,2,3} options

Specify by intuitive arguments which fs version to create. For v3 an exit message is shown that the feature is not yet available.
This patch also gets rid of the version2 variable, replaced by 'fs_version'.

Signed-off-by: Davidlohr Bueso <dave@xxxxxxx>
---
 disk-utils/mkfs.minix.c |   26 ++++++++++++++++----------
 1 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/disk-utils/mkfs.minix.c b/disk-utils/mkfs.minix.c
index 53b5900..ff50d4d 100644
--- a/disk-utils/mkfs.minix.c
+++ b/disk-utils/mkfs.minix.c
@@ -88,7 +88,7 @@
 #define INODE_SIZE (sizeof(struct minix_inode))
 
 #define INODE_SIZE2 (sizeof(struct minix2_inode))
-#define INODE_BLOCKS UPPER(INODES, (version2 ? MINIX2_INODES_PER_BLOCK \
+#define INODE_BLOCKS UPPER(INODES, (fs_version == 2 ? MINIX2_INODES_PER_BLOCK \
 				    : MINIX_INODES_PER_BLOCK))
 #define INODE_BUFFER_SIZE (INODE_BLOCKS * BLOCK_SIZE)
 
@@ -106,7 +106,7 @@ static int namelen = 30;	/* default (changed to 30, per Linus's
 				   suggestion, Sun Nov 21 08:05:07 1993) */
 static int dirsize = 32;
 static int magic = MINIX_SUPER_MAGIC2;
-static int version2 = 0;
+static int fs_version = 1; /* v1 by default */
 
 static char root_block[BLOCK_SIZE] = "\0";
 
@@ -118,7 +118,7 @@ static char *super_block_buffer;
 static char boot_block_buffer[512];
 #define Super (*(struct minix_super_block *)super_block_buffer)
 #define INODES ((unsigned long)Super.s_ninodes)
-#define ZONES ((unsigned long)(version2 ? Super.s_zones : Super.s_nzones))
+#define ZONES ((unsigned long)(fs_version == 2 ? Super.s_zones : Super.s_nzones))
 #define IMAPS ((unsigned long)Super.s_imap_blocks)
 #define ZMAPS ((unsigned long)Super.s_zmap_blocks)
 #define FIRSTZONE ((unsigned long)Super.s_firstdatazone)
@@ -392,8 +392,8 @@ setup_tables(void) {
 	memset(boot_block_buffer,0,512);
 	Super.s_magic = magic;
 	Super.s_log_zone_size = 0;
-	Super.s_max_size = version2 ? 0x7fffffff : (7+512+512*512)*1024;
-	if (version2)
+	Super.s_max_size = fs_version == 2 ? 0x7fffffff : (7+512+512*512)*1024;
+	if (fs_version == 2)
 		Super.s_zones = BLOCKS;
 	else
 		Super.s_nzones = BLOCKS;
@@ -404,7 +404,7 @@ setup_tables(void) {
 	else
 		inodes = req_nr_inodes;
 	/* Round up inode count to fill block size */
-	if (version2)
+	if (fs_version == 2)
 		inodes = ((inodes + MINIX2_INODES_PER_BLOCK - 1) &
 			  ~(MINIX2_INODES_PER_BLOCK - 1));
 	else
@@ -570,7 +570,7 @@ main(int argc, char ** argv) {
 		errx(8, _("bad inode size"), device_name);
 
 	opterr = 0;
-	while ((i = getopt(argc, argv, "ci:l:n:v")) != -1)
+	while ((i = getopt(argc, argv, "ci:l:n:v123")) != -1)
 		switch (i) {
 		case 'c':
 			check=1; break;
@@ -592,9 +592,15 @@ main(int argc, char ** argv) {
 			namelen = i;
 			dirsize = i+2;
 			break;
+		case '1':
+			fs_version = 1;
+			break;
+		case '2':
 		case 'v':
-			version2 = 1;
+			fs_version = 2;
 			break;
+		case '3':
+			errx(8, _("cannot create mkfs v3 - unsupported feature"));
 		default:
 			usage();
 		}
@@ -654,7 +660,7 @@ main(int argc, char ** argv) {
 		errx(8, _("will not try to make filesystem on '%s'"), device_name);
 	if (BLOCKS < 10)
 		errx(8, _("number of blocks too small"), device_name);
-	if (version2) {
+	if (fs_version == 2) {
 		if (namelen == 14)
 			magic = MINIX2_SUPER_MAGIC;
 		else
@@ -667,7 +673,7 @@ main(int argc, char ** argv) {
 		check_blocks();
 	else if (listfile)
 		get_list_blocks(listfile);
-	if (version2) {
+	if (fs_version == 2) {
 		make_root_inode2 ();
 		make_bad_inode2 ();
 	} else {
-- 
1.7.1



--
To unsubscribe from this list: send the line "unsubscribe util-linux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux