All of lore.kernel.org
 help / color / mirror / Atom feed
From: Coly Li <coyli@suse.de>
To: Theodore Tso <tytso@mit.edu>,
	Andreas Dilger <adilger@clusterfs.com>,
	linux-ext4@vger.kernel.org
Subject: [PATCH] e2fsprogs: obsolete hurd and masix support
Date: Mon, 13 Aug 2007 01:45:18 +0800	[thread overview]
Message-ID: <46BF472E.1040105@suse.de> (raw)

[-- Attachment #1: Type: text/plain, Size: 15713 bytes --]

Theodore,

Here is the patch to remove obsoleted code piece by piece.
This patch remove hurd and masix support, including union of inode and related source code.

I find there (likely) are some hurd related code in lib/ext2fs/ismounted.c. But I am not sure
whether the "#ifndef __GNU__" is hurd specific only. What is your comment ?

This time, I use MIME/PGP in my signature, and tested by sending the patch to another account. Hope
the format is ok this time :-)

Signed-Off-By: Coly Li <coyli@suse.de>

diff --git a/debugfs/debugfs.c b/debugfs/debugfs.c
index 190c4b7..0d1b7c2 100644
--- a/debugfs/debugfs.c
+++ b/debugfs/debugfs.c
@@ -545,16 +545,9 @@ void internal_dump_inode(FILE *out, const char *prefix,
 		fprintf(out, "%llu\n", i_size);
 	} else
 		fprintf(out, "%d\n", inode->i_size);
-	if (os == EXT2_OS_HURD)
-		fprintf(out,
-			"%sFile ACL: %d    Directory ACL: %d Translator: %d\n",
-			prefix,
-			inode->i_file_acl, LINUX_S_ISDIR(inode->i_mode) ? inode->i_dir_acl : 0,
-			inode->osd1.hurd1.h_i_translator);
-	else
-		fprintf(out, "%sFile ACL: %d    Directory ACL: %d\n",
-			prefix,
-			inode->i_file_acl, LINUX_S_ISDIR(inode->i_mode) ? inode->i_dir_acl : 0);
+	fprintf(out, "%sFile ACL: %d    Directory ACL: %d\n",
+		prefix,
+		inode->i_file_acl, LINUX_S_ISDIR(inode->i_mode) ? inode->i_dir_acl : 0);
 	if (os == EXT2_OS_LINUX)
 		fprintf(out, "%sLinks: %d   Blockcount: %llu\n",
 			prefix, inode->i_links_count,
@@ -564,18 +557,7 @@ void internal_dump_inode(FILE *out, const char *prefix,
 	else
 		fprintf(out, "%sLinks: %d   Blockcount: %u\n",
 			prefix, inode->i_links_count, inode->i_blocks);
-	switch (os) {
-	    case EXT2_OS_HURD:
-		frag = inode->osd2.hurd2.h_i_frag;
-		fsize = inode->osd2.hurd2.h_i_fsize;
-		break;
-	    case EXT2_OS_MASIX:
-		frag = inode->osd2.masix2.m_i_frag;
-		fsize = inode->osd2.masix2.m_i_fsize;
-		break;
-	    default:
-		frag = fsize = 0;
-	}
+	frag = fsize = 0;
 	fprintf(out, "%sFragment:  Address: %d    Number: %d    Size: %d\n",
 		prefix, inode->i_faddr, frag, fsize);
 	fprintf(out, "%sctime: 0x%08x -- %s", prefix, inode->i_ctime,
@@ -889,27 +871,7 @@ void do_modify_inode(int argc, char *argv[])
 	else
 		modify_u32(argv[0], "High 32bits of size", decimal_format, &inode.i_size_high);

-	if (os == EXT2_OS_HURD)
-		modify_u32(argv[0], "Translator Block",
-			    decimal_format, &inode.osd1.hurd1.h_i_translator);
-	
 	modify_u32(argv[0], "Fragment address", decimal_format, &inode.i_faddr);
-	switch (os) {
-	    case EXT2_OS_HURD:
-		frag = &inode.osd2.hurd2.h_i_frag;
-		fsize = &inode.osd2.hurd2.h_i_fsize;
-		break;
-	    case EXT2_OS_MASIX:
-		frag = &inode.osd2.masix2.m_i_frag;
-		fsize = &inode.osd2.masix2.m_i_fsize;
-		break;
-	    default:
-		frag = fsize = 0;
-	}
-	if (frag)
-		modify_u8(argv[0], "Fragment number", decimal_format, frag);
-	if (fsize)
-		modify_u8(argv[0], "Fragment size", decimal_format, fsize);

 	for (i=0;  i < EXT2_NDIR_BLOCKS; i++) {
 		sprintf(buf, "Direct Block #%d", i);
diff --git a/debugfs/set_fields.c b/debugfs/set_fields.c
index 9ff7f8c..04de624 100644
--- a/debugfs/set_fields.c
+++ b/debugfs/set_fields.c
@@ -132,7 +132,6 @@ static struct field_set_info inode_fields[] = {
 	{ "blocks", &set_inode.i_blocks, 4, parse_uint },
 	{ "flags", &set_inode.i_flags, 4, parse_uint },
 	{ "version", &set_inode.osd1.linux1.l_i_version, 4, parse_uint },
-	{ "translator", &set_inode.osd1.hurd1.h_i_translator, 4, parse_uint },
 	{ "block", &set_inode.i_block[0], 4, parse_uint, FLAG_ARRAY,
 	  EXT2_NDIR_BLOCKS },
 	{ "block[IND]", &set_inode.i_block[EXT2_IND_BLOCK], 4, parse_uint },
@@ -143,11 +142,8 @@ static struct field_set_info inode_fields[] = {
 	{ "dir_acl", &set_inode.i_dir_acl, 4, parse_uint },
 	{ "faddr", &set_inode.i_faddr, 4, parse_uint },
 	{ "blocks_hi", &set_inode.osd2.linux2.l_i_blocks_hi, 2, parse_uint },
-	{ "frag", &set_inode.osd2.hurd2.h_i_frag, 1, parse_uint },
-	{ "fsize", &set_inode.osd2.hurd2.h_i_fsize, 1, parse_uint },
 	{ "uid_high", &set_inode.osd2.linux2.l_i_uid_high, 2, parse_uint },
 	{ "gid_high", &set_inode.osd2.linux2.l_i_gid_high, 2, parse_uint },
-	{ "author", &set_inode.osd2.hurd2.h_i_author, 4, parse_uint },
 	{ "bmap", NULL, 4, parse_bmap, FLAG_ARRAY },
 	{ 0, 0, 0, 0 }
 };
diff --git a/e2fsck/pass1.c b/e2fsck/pass1.c
index ceb9c7f..f0d3879 100644
--- a/e2fsck/pass1.c
+++ b/e2fsck/pass1.c
@@ -475,7 +475,6 @@ void e2fsck_pass1(e2fsck_t ctx)
 #ifdef RESOURCE_TRACK
 	struct resource_track	rtrack;
 #endif
-	unsigned char	frag, fsize;
 	struct		problem_context pctx;
 	struct		scan_callback_struct scan_struct;
 	struct ext2_super_block *sb = ctx->fs->super;
@@ -829,20 +828,8 @@ void e2fsck_pass1(e2fsck_t ctx)
 		}
 		
 		ext2fs_mark_inode_bitmap(ctx->inode_used_map, ino);
-		switch (fs->super->s_creator_os) {
-		    case EXT2_OS_HURD:
-			frag = inode->osd2.hurd2.h_i_frag;
-			fsize = inode->osd2.hurd2.h_i_fsize;
-			break;
-		    case EXT2_OS_MASIX:
-			frag = inode->osd2.masix2.m_i_frag;
-			fsize = inode->osd2.masix2.m_i_fsize;
-			break;
-		    default:
-			frag = fsize = 0;
-		}
 		
-		if (inode->i_faddr || frag || fsize ||
+		if (inode->i_faddr ||
 		    (LINUX_S_ISDIR(inode->i_mode) && inode->i_dir_acl))
 			mark_inode_bad(ctx, ino);
 		if ((fs->super->s_creator_os == EXT2_OS_LINUX) &&
diff --git a/e2fsck/pass2.c b/e2fsck/pass2.c
index 7f7635f..ef9a814 100644
--- a/e2fsck/pass2.c
+++ b/e2fsck/pass2.c
@@ -1248,37 +1248,6 @@ extern int e2fsck_process_bad_inode(e2fsck_t ctx, ext2_ino_t dir,
 			not_fixed++;
 	}

-	switch (fs->super->s_creator_os) {
-	    case EXT2_OS_HURD:
-		frag = &inode.osd2.hurd2.h_i_frag;
-		fsize = &inode.osd2.hurd2.h_i_fsize;
-		break;
-	    case EXT2_OS_MASIX:
-		frag = &inode.osd2.masix2.m_i_frag;
-		fsize = &inode.osd2.masix2.m_i_fsize;
-		break;
-	    default:
-		frag = fsize = 0;
-	}
-	if (frag && *frag) {
-		pctx.num = *frag;
-		if (fix_problem(ctx, PR_2_FRAG_ZERO, &pctx)) {
-			*frag = 0;
-			inode_modified++;
-		} else
-			not_fixed++;
-		pctx.num = 0;
-	}
-	if (fsize && *fsize) {
-		pctx.num = *fsize;
-		if (fix_problem(ctx, PR_2_FSIZE_ZERO, &pctx)) {
-			*fsize = 0;
-			inode_modified++;
-		} else
-			not_fixed++;
-		pctx.num = 0;
-	}
-
 	if ((fs->super->s_creator_os == EXT2_OS_LINUX) &&
 	    !(fs->super->s_feature_ro_compat &
 	      EXT4_FEATURE_RO_COMPAT_HUGE_FILE) &&
diff --git a/e2fsck/super.c b/e2fsck/super.c
index 00a131c..2b13b7c 100644
--- a/e2fsck/super.c
+++ b/e2fsck/super.c
@@ -670,22 +670,6 @@ void check_super_block(e2fsck_t ctx)
 #endif

 	/*
-	 * For the Hurd, check to see if the filetype option is set,
-	 * since it doesn't support it.
-	 */
-	if (!(ctx->options & E2F_OPT_READONLY) &&
-	    fs->super->s_creator_os == EXT2_OS_HURD &&
-	    (fs->super->s_feature_incompat &
-	     EXT2_FEATURE_INCOMPAT_FILETYPE)) {
-		if (fix_problem(ctx, PR_0_HURD_CLEAR_FILETYPE, &pctx)) {
-			fs->super->s_feature_incompat &=
-				~EXT2_FEATURE_INCOMPAT_FILETYPE;
-			ext2fs_mark_super_dirty(fs);
-
-		}
-	}
-
-	/*
 	 * If we have any of the compatibility flags set, we need to have a
 	 * revision 1 filesystem.  Most kernels will not check the flags on
 	 * a rev 0 filesystem and we may have corruption issues because of
diff --git a/ext2ed/super_com.c b/ext2ed/super_com.c
index 0541ff3..900ed54 100644
--- a/ext2ed/super_com.c
+++ b/ext2ed/super_com.c
@@ -97,14 +97,6 @@ void type_ext2_super_block___show (char *command_line)
 			wprintw (show_pad,"Linux :-)");
 			break;

-		case EXT2_OS_HURD:
-			wprintw (show_pad,"Hurd");
-			break;
-
-		case EXT2_OS_MASIX:
-			wprintw (show_pad,"Masix");
-			break;
-
 		default:
 			wprintw (show_pad,"Unknown");
 			break;
diff --git a/lib/ext2fs/block.c b/lib/ext2fs/block.c
index 7685680..b95a97e 100644
--- a/lib/ext2fs/block.c
+++ b/lib/ext2fs/block.c
@@ -321,25 +321,6 @@ errcode_t ext2fs_block_iterate2(ext2_filsys fs,
 	ctx.tind_buf = ctx.dind_buf + fs->blocksize;

 	/*
-	 * Iterate over the HURD translator block (if present)
-	 */
-	if ((fs->super->s_creator_os == EXT2_OS_HURD) &&
-	    !(flags & BLOCK_FLAG_DATA_ONLY)) {
-		ctx.errcode = ext2fs_read_inode(fs, ino, &inode);
-		if (ctx.errcode)
-			goto abort_exit;
-		got_inode = 1;
-		if (inode.osd1.hurd1.h_i_translator) {
-			ret |= (*ctx.func)(fs,
-					   &inode.osd1.hurd1.h_i_translator,
-					   BLOCK_COUNT_TRANSLATOR,
-					   0, 0, priv_data);
-			if (ret & BLOCK_ABORT)
-				goto abort_exit;
-		}
-	}
-	
-	/*
 	 * Iterate over normal data blocks
 	 */
 	for (i = 0; i < EXT2_NDIR_BLOCKS ; i++, ctx.bcount++) {
diff --git a/lib/ext2fs/ext2_fs.h b/lib/ext2fs/ext2_fs.h
index a316665..1f36718 100644
--- a/lib/ext2fs/ext2_fs.h
+++ b/lib/ext2fs/ext2_fs.h
@@ -312,12 +312,6 @@ struct ext2_inode {
 		struct {
 			__u32	l_i_version; /* was l_i_reserved1 */
 		} linux1;
-		struct {
-			__u32  h_i_translator;
-		} hurd1;
-		struct {
-			__u32  m_i_reserved1;
-		} masix1;
 	} osd1;				/* OS dependent 1 */
 	__u32	i_block[EXT2_N_BLOCKS];/* Pointers to blocks */
 	__u32	i_generation;	/* File version (for NFS) */
@@ -332,20 +326,6 @@ struct ext2_inode {
 			__u16	l_i_gid_high;	/* were reserved2[0] */
 			__u32	l_i_reserved2;
 		} linux2;
-		struct {
-			__u8	h_i_frag;	/* Fragment number */
-			__u8	h_i_fsize;	/* Fragment size */
-			__u16	h_i_mode_high;
-			__u16	h_i_uid_high;
-			__u16	h_i_gid_high;
-			__u32	h_i_author;
-		} hurd2;
-		struct {
-			__u8	m_i_frag;	/* Fragment number */
-			__u8	m_i_fsize;	/* Fragment size */
-			__u16	m_pad1;
-			__u32	m_i_reserved2[2];
-		} masix2;
 	} osd2;				/* OS dependent 2 */
 };

@@ -368,12 +348,6 @@ struct ext2_inode_large {
 		struct {
 			__u32	l_i_version; /* was l_i_reserved1 */
 		} linux1;
-		struct {
-			__u32  h_i_translator;
-		} hurd1;
-		struct {
-			__u32  m_i_reserved1;
-		} masix1;
 	} osd1;				/* OS dependent 1 */
 	__u32	i_block[EXT2_N_BLOCKS];/* Pointers to blocks */
 	__u32	i_generation;	/* File version (for NFS) */
@@ -388,20 +362,6 @@ struct ext2_inode_large {
 			__u16	l_i_gid_high;	/* were reserved2[0] */
 			__u32	l_i_reserved2;
 		} linux2;
-		struct {
-			__u8	h_i_frag;	/* Fragment number */
-			__u8	h_i_fsize;	/* Fragment size */
-			__u16	h_i_mode_high;
-			__u16	h_i_uid_high;
-			__u16	h_i_gid_high;
-			__u32	h_i_author;
-		} hurd2;
-		struct {
-			__u8	m_i_frag;	/* Fragment number */
-			__u8	m_i_fsize;	/* Fragment size */
-			__u16	m_pad1;
-			__u32	m_i_reserved2[2];
-		} masix2;
 	} osd2;				/* OS dependent 2 */
 	__u16	i_extra_isize;
 	__u16	i_pad1;
@@ -428,26 +388,9 @@ struct ext2_inode_large {
 #else
 #if defined(__GNU__)

-#define i_translator	osd1.hurd1.h_i_translator
-#define i_frag		osd2.hurd2.h_i_frag;
-#define i_fsize		osd2.hurd2.h_i_fsize;
-#define i_uid_high	osd2.hurd2.h_i_uid_high
-#define i_gid_high	osd2.hurd2.h_i_gid_high
-#define i_author	osd2.hurd2.h_i_author
 #define inode_uid(inode)	((inode).i_uid | (inode).i_uid_high << 16)
 #define inode_gid(inode)	((inode).i_gid | (inode).i_gid_high << 16)

-#else
-#if defined(__masix__)
-
-#define i_reserved1	osd1.masix1.m_i_reserved1
-#define i_frag		osd2.masix2.m_i_frag
-#define i_fsize		osd2.masix2.m_i_fsize
-#define i_reserved2	osd2.masix2.m_i_reserved2
-#define inode_uid(inode)	((inode).i_uid)
-#define inode_gid(inode)	((inode).i_gid)
-
-#endif  /* __masix__ */
 #endif  /* __GNU__ */
 #endif	/* defined(__KERNEL__) || defined(__linux__) */

@@ -584,8 +527,6 @@ struct ext2_super_block {
  * Codes for operating systems
  */
 #define EXT2_OS_LINUX		0
-#define EXT2_OS_HURD		1
-#define EXT2_OS_MASIX		2
 #define EXT2_OS_FREEBSD		3
 #define EXT2_OS_LITES		4

diff --git a/lib/ext2fs/swapfs.c b/lib/ext2fs/swapfs.c
index bd0844d..60dbd4d 100644
--- a/lib/ext2fs/swapfs.c
+++ b/lib/ext2fs/swapfs.c
@@ -184,31 +184,6 @@ void ext2fs_swap_inode_full(ext2_filsys fs, struct ext2_inode_large *t,
 		t->osd2.linux2.l_i_reserved2 =
 			ext2fs_swab32(f->osd2.linux2.l_i_reserved2);
 		break;
-	case EXT2_OS_HURD:
-		t->osd1.hurd1.h_i_translator =
-		  ext2fs_swab32 (f->osd1.hurd1.h_i_translator);
-		t->osd2.hurd2.h_i_frag = f->osd2.hurd2.h_i_frag;
-		t->osd2.hurd2.h_i_fsize = f->osd2.hurd2.h_i_fsize;
-		t->osd2.hurd2.h_i_mode_high =
-		  ext2fs_swab16 (f->osd2.hurd2.h_i_mode_high);
-		t->osd2.hurd2.h_i_uid_high =
-		  ext2fs_swab16 (f->osd2.hurd2.h_i_uid_high);
-		t->osd2.hurd2.h_i_gid_high =
-		  ext2fs_swab16 (f->osd2.hurd2.h_i_gid_high);
-		t->osd2.hurd2.h_i_author =
-		  ext2fs_swab32 (f->osd2.hurd2.h_i_author);
-		break;
-	case EXT2_OS_MASIX:
-		t->osd1.masix1.m_i_reserved1 =
-			ext2fs_swab32(f->osd1.masix1.m_i_reserved1);
-		t->osd2.masix2.m_i_frag = f->osd2.masix2.m_i_frag;
-		t->osd2.masix2.m_i_fsize = f->osd2.masix2.m_i_fsize;
-		t->osd2.masix2.m_pad1 = ext2fs_swab16(f->osd2.masix2.m_pad1);
-		t->osd2.masix2.m_i_reserved2[0] =
-			ext2fs_swab32(f->osd2.masix2.m_i_reserved2[0]);
-		t->osd2.masix2.m_i_reserved2[1] =
-			ext2fs_swab32(f->osd2.masix2.m_i_reserved2[1]);
-		break;
 	}

 	if (bufsize < (int) (sizeof(struct ext2_inode) + sizeof(__u16)))
diff --git a/misc/mke2fs.c b/misc/mke2fs.c
index 4a6cace..d5956ef 100644
--- a/misc/mke2fs.c
+++ b/misc/mke2fs.c
@@ -738,10 +738,6 @@ static int set_os(struct ext2_super_block *sb, char *os)
 		sb->s_creator_os = atoi (os);
 	else if (strcasecmp(os, "linux") == 0)
 		sb->s_creator_os = EXT2_OS_LINUX;
-	else if (strcasecmp(os, "GNU") == 0 || strcasecmp(os, "hurd") == 0)
-		sb->s_creator_os = EXT2_OS_HURD;
-	else if (strcasecmp(os, "masix") == 0)
-		sb->s_creator_os = EXT2_OS_MASIX;
 	else if (strcasecmp(os, "freebsd") == 0)
 		sb->s_creator_os = EXT2_OS_FREEBSD;
 	else if (strcasecmp(os, "lites") == 0)
@@ -1591,14 +1587,6 @@ int main (int argc, char *argv[])
 	}

 	/*
-	 * For the Hurd, we will turn off filetype since it doesn't
-	 * support it.
-	 */
-	if (fs->super->s_creator_os == EXT2_OS_HURD)
-		fs->super->s_feature_incompat &=
-			~EXT2_FEATURE_INCOMPAT_FILETYPE;
-
-	/*
 	 * Set the volume label...
 	 */
 	if (volume_label) {
diff --git a/tests/f_hurd/expect.1 b/tests/f_hurd/expect.1
deleted file mode 100644
index f7bfc56..0000000
--- a/tests/f_hurd/expect.1
+++ /dev/null
@@ -1,12 +0,0 @@
-The Hurd does not support the filetype feature.
-Clear? yes
-
-Pass 1: Checking inodes, blocks, and sizes
-Pass 2: Checking directory structure
-Pass 3: Checking directory connectivity
-Pass 4: Checking reference counts
-Pass 5: Checking group summary information
-
-test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
-test_filesys: 11/16 files (0.0% non-contiguous), 20/100 blocks
-Exit status is 1
diff --git a/tests/f_hurd/expect.2 b/tests/f_hurd/expect.2
deleted file mode 100644
index 44bff62..0000000
--- a/tests/f_hurd/expect.2
+++ /dev/null
@@ -1,7 +0,0 @@
-Pass 1: Checking inodes, blocks, and sizes
-Pass 2: Checking directory structure
-Pass 3: Checking directory connectivity
-Pass 4: Checking reference counts
-Pass 5: Checking group summary information
-test_filesys: 11/16 files (0.0% non-contiguous), 20/100 blocks
-Exit status is 0
diff --git a/tests/f_hurd/image.gz b/tests/f_hurd/image.gz
deleted file mode 100644
index 58ffe0c..0000000
Binary files a/tests/f_hurd/image.gz and /dev/null differ
diff --git a/tests/f_hurd/name b/tests/f_hurd/name
deleted file mode 100644
index a692986..0000000
--- a/tests/f_hurd/name
+++ /dev/null
@@ -1 +0,0 @@
-GNU/Hurd specific tests



-- 
Coly Li
SuSE PRC Labs


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 249 bytes --]

                 reply	other threads:[~2007-08-12 17:44 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=46BF472E.1040105@suse.de \
    --to=coyli@suse.de \
    --cc=adilger@clusterfs.com \
    --cc=linux-ext4@vger.kernel.org \
    --cc=tytso@mit.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.