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@xxxxxxx> 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:
signature.asc
Description: OpenPGP digital signature