From: Lukas Czerner Subject: [PATCH] e2fsprogs: Remove any occurrence of ext4dev and test_fs Date: Wed, 19 Feb 2014 15:57:15 +0100 Message-ID: <1392821835-12059-1-git-send-email-lczerner@redhat.com> Cc: tytso@mit.edu, Lukas Czerner To: linux-ext4@vger.kernel.org Return-path: Received: from mx1.redhat.com ([209.132.183.28]:4835 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751026AbaBSO50 (ORCPT ); Wed, 19 Feb 2014 09:57:26 -0500 Sender: linux-ext4-owner@vger.kernel.org List-ID: ext4dev is no longer supported by kernel so we really need to get rid of it entirely from e2fsprogs. This patch removes any occurrence of ext4dev and test_fs flag from the e2fsprogs tools with one exception. Out of paranoia we can still leave the possibility to remove test_fs flag (EXT2_FLAGS_TEST_FILESYS) from the file system using e2fsck by specifying clear_test_fs_flag option in the e2fsck.config file. Signed-off-by: Lukas Czerner --- e2fsck/Makefile.in | 10 +++---- e2fsprogs.spec.in | 4 --- lib/blkid/probe.c | 80 ++-------------------------------------------------- misc/Makefile.in | 32 ++++++--------------- misc/fsck.c | 7 ++--- misc/mke2fs.8.in | 4 --- misc/mke2fs.c | 9 +----- misc/mke2fs.conf.in | 5 ---- misc/tune2fs.8.in | 8 ------ misc/tune2fs.c | 12 +------- tests/mke2fs.conf.in | 5 ---- 11 files changed, 20 insertions(+), 156 deletions(-) diff --git a/e2fsck/Makefile.in b/e2fsck/Makefile.in index 8ca329b..441485b 100644 --- a/e2fsck/Makefile.in +++ b/e2fsck/Makefile.in @@ -207,7 +207,7 @@ install: $(PROGS) $(MANPAGES) $(FMANPAGES) installdirs $(ES) " INSTALL $(root_sbindir)/$$i"; \ $(INSTALL_PROGRAM) $$i $(DESTDIR)$(root_sbindir)/$$i; \ done - $(Q) for i in ext2 ext3 ext4 ext4dev; do \ + $(Q) for i in ext2 ext3 ext4; do \ $(ES) " LINK $(root_sbindir)/fsck.$$i"; \ (cd $(DESTDIR)$(root_sbindir); \ $(LN) $(LINK_INSTALL_FLAGS) e2fsck fsck.$$i); \ @@ -226,7 +226,7 @@ install: $(PROGS) $(MANPAGES) $(FMANPAGES) installdirs $(ES) " INSTALL_DATA $(man5dir)/$$i"; \ $(INSTALL_DATA) $$i $(DESTDIR)$(man5dir)/$$i; \ done - $(Q) for i in ext2 ext3 ext4 ext4dev; do \ + $(Q) for i in ext2 ext3 ext4; do \ $(ES) " LINK $(man8dir)/fsck.$$i.8"; \ (cd $(DESTDIR)$(man8dir); \ $(LN) $(LINK_INSTALL_FLAGS) e2fsck.8 fsck.$$i.8); \ @@ -244,8 +244,7 @@ uninstall: done $(RM) -f $(DESTDIR)$(root_sbindir)/fsck.ext2 \ $(DESTDIR)$(root_sbindir)/fsck.ext3 \ - $(DESTDIR)$(root_sbindir)/fsck.ext4 \ - $(DESTDIR)$(root_sbindir)/fsck.ext4dev + $(DESTDIR)$(root_sbindir)/fsck.ext4 for i in $(MANPAGES); do \ $(RM) -f $(DESTDIR)$(man8dir)/$$i; \ done @@ -254,8 +253,7 @@ uninstall: done $(RM) -f $(DESTDIR)$(root_sbindir)/fsck.ext2 \ $(DESTDIR)$(root_sbindir)/fsck.ext3 \ - $(DESTDIR)$(root_sbindir)/fsck.ext4 \ - $(DESTDIR)$(root_sbindir)/fsck.ext4dev + $(DESTDIR)$(root_sbindir)/fsck.ext4 clean: $(RM) -f $(PROGS) \#* *\# *.s *.o *.a *~ core e2fsck.static \ diff --git a/e2fsprogs.spec.in b/e2fsprogs.spec.in index b188b75..c739e63 100644 --- a/e2fsprogs.spec.in +++ b/e2fsprogs.spec.in @@ -122,14 +122,12 @@ exit 0 %{_root_sbindir}/fsck.ext2 %{_root_sbindir}/fsck.ext3 %{_root_sbindir}/fsck.ext4 -%{_root_sbindir}/fsck.ext4dev %{_root_sbindir}/logsave %{_root_sbindir}/mke2fs %{_root_etcdir}/mke2fs.conf %{_root_sbindir}/mkfs.ext2 %{_root_sbindir}/mkfs.ext3 %{_root_sbindir}/mkfs.ext4 -%{_root_sbindir}/mkfs.ext4dev %{_root_sbindir}/resize2fs %{_root_sbindir}/tune2fs %{_sbindir}/filefrag @@ -164,7 +162,6 @@ exit 0 %{_mandir}/man8/fsck.ext2.8* %{_mandir}/man8/fsck.ext3.8* %{_mandir}/man8/fsck.ext4.8* -%{_mandir}/man8/fsck.ext4dev.8* %{_mandir}/man8/e2image.8* %{_mandir}/man8/e2label.8* %{_mandir}/man8/e2undo.8* @@ -174,7 +171,6 @@ exit 0 %{_mandir}/man8/mkfs.ext2.8* %{_mandir}/man8/mkfs.ext3.8* %{_mandir}/man8/mkfs.ext4.8* -%{_mandir}/man8/mkfs.ext4dev.8* %{_mandir}/man8/mklost+found.8* %{_mandir}/man8/resize2fs.8* %{_mandir}/man8/tune2fs.8* diff --git a/lib/blkid/probe.c b/lib/blkid/probe.c index 4b797ab..2877fdf 100644 --- a/lib/blkid/probe.c +++ b/lib/blkid/probe.c @@ -305,64 +305,6 @@ static int system_supports_ext4(void) return ret; } -static int system_supports_ext4dev(void) -{ - static time_t last_check = 0; - static int ret = -1; - time_t now = time(0); - - if (ret != -1 || (now - last_check) < 5) - return ret; - last_check = now; - ret = (fs_proc_check("ext4dev") || check_for_modules("ext4dev")); - return ret; -} - -static int probe_ext4dev(struct blkid_probe *probe, - struct blkid_magic *id, - unsigned char *buf) -{ - struct ext2_super_block *es; - es = (struct ext2_super_block *)buf; - - /* Distinguish from jbd */ - if (blkid_le32(es->s_feature_incompat) & - EXT3_FEATURE_INCOMPAT_JOURNAL_DEV) - return -BLKID_ERR_PARAM; - - /* - * If the filesystem does not have a journal and ext2 and ext4 - * is not present, then force this to be detected as an - * ext4dev filesystem. - */ - if (!(blkid_le32(es->s_feature_compat) & - EXT3_FEATURE_COMPAT_HAS_JOURNAL) && - !system_supports_ext2() && !system_supports_ext4() && - system_supports_ext4dev() && - linux_version_code() >= EXT4_SUPPORTS_EXT2) - goto force_ext4dev; - - /* - * If the filesystem is marked as OK for use by in-development - * filesystem code, but ext4dev is not supported, and ext4 is, - * then don't call ourselves ext4dev, since we should be - * detected as ext4 in that case. - * - * If the filesystem is marked as in use by production - * filesystem, then it can only be used by ext4 and NOT by - * ext4dev, so always disclaim we are ext4dev in that case. - */ - if (blkid_le32(es->s_flags) & EXT2_FLAGS_TEST_FILESYS) { - if (!system_supports_ext4dev() && system_supports_ext4()) - return -BLKID_ERR_PARAM; - } else - return -BLKID_ERR_PARAM; - -force_ext4dev: - get_ext2_info(probe->dev, id, buf); - return 0; -} - static int probe_ext4(struct blkid_probe *probe, struct blkid_magic *id, unsigned char *buf) { @@ -393,21 +335,7 @@ static int probe_ext4(struct blkid_probe *probe, struct blkid_magic *id, return -BLKID_ERR_PARAM; force_ext4: - /* - * If the filesystem is a OK for use by in-development - * filesystem code, and ext4dev is supported or ext4 is not - * supported, then don't call ourselves ext4, so we can redo - * the detection and mark the filesystem as ext4dev. - * - * If the filesystem is marked as in use by production - * filesystem, then it can only be used by ext4 and NOT by - * ext4dev. - */ - if (blkid_le32(es->s_flags) & EXT2_FLAGS_TEST_FILESYS) { - if (system_supports_ext4dev() || !system_supports_ext4()) - return -BLKID_ERR_PARAM; - } - get_ext2_info(probe->dev, id, buf); + get_ext2_info(probe->dev, id, buf); return 0; } @@ -453,11 +381,10 @@ static int probe_ext2(struct blkid_probe *probe, struct blkid_magic *id, return -BLKID_ERR_PARAM; /* - * If ext2 is not present, but ext4 or ext4dev are, then + * If ext2 is not present, but ext4 is, then * disclaim we are ext2 */ - if (!system_supports_ext2() && - (system_supports_ext4() || system_supports_ext4dev()) && + if (!system_supports_ext2() && system_supports_ext4() && linux_version_code() >= EXT4_SUPPORTS_EXT2) return -BLKID_ERR_PARAM; @@ -1400,7 +1327,6 @@ static struct blkid_magic type_array[] = { { "oracleasm", 0, 32, 8, "ORCLDISK", probe_oracleasm }, { "ntfs", 0, 3, 8, "NTFS ", probe_ntfs }, { "jbd", 1, 0x38, 2, "\123\357", probe_jbd }, - { "ext4dev", 1, 0x38, 2, "\123\357", probe_ext4dev }, { "ext4", 1, 0x38, 2, "\123\357", probe_ext4 }, { "ext3", 1, 0x38, 2, "\123\357", probe_ext3 }, { "ext2", 1, 0x38, 2, "\123\357", probe_ext2 }, diff --git a/misc/Makefile.in b/misc/Makefile.in index e8cfdb5..90986f6 100644 --- a/misc/Makefile.in +++ b/misc/Makefile.in @@ -461,7 +461,7 @@ install: all $(SMANPAGES) $(UMANPAGES) installdirs $(ES) " INSTALL $(sbindir)/$$i"; \ $(INSTALL_PROGRAM) $$i $(DESTDIR)$(sbindir)/$$i; \ done - $(Q) for i in ext2 ext3 ext4 ext4dev; do \ + $(Q) for i in ext2 ext3 ext4; do \ $(ES) " LINK $(root_sbindir)/mkfs.$$i"; \ (cd $(DESTDIR)$(root_sbindir); \ $(LN) $(LINK_INSTALL_FLAGS) mke2fs mkfs.$$i); \ @@ -490,7 +490,7 @@ install: all $(SMANPAGES) $(UMANPAGES) installdirs done $(Q) $(RM) -f $(DESTDIR)$(man8dir)/mkfs.ext2.8.gz \ $(DESTDIR)$(man8dir)/mkfs.ext3.8.gz - $(Q) for i in ext2 ext3 ext4 ext4dev; do \ + $(Q) for i in ext2 ext3 ext4; do \ $(ES) " LINK mkfs.$$i.8"; \ (cd $(DESTDIR)$(man8dir); \ $(LN) $(LINK_INSTALL_FLAGS) mke2fs.8 mkfs.$$i.8); \ @@ -519,22 +519,11 @@ install: all $(SMANPAGES) $(UMANPAGES) installdirs mke2fs.conf; then \ true; \ else \ - if grep -q ext4dev $(DESTDIR)$(root_sysconfdir)/mke2fs.conf ; then \ - $(ES) " INSTALL_DATA $(root_sysconfdir)/mke2fs.conf.e2fsprogs-new"; \ - $(INSTALL_DATA) mke2fs.conf \ - $(DESTDIR)$(root_sysconfdir)/mke2fs.conf.e2fsprogs-new; \ - echo "Warning: installing mke2fs.conf in $(DESTDIR)$(root_sysconfdir)/mke2fs.conf.e2fsprogs-new"; \ - echo "Check to see if you need to update your $(root_sysconfdir)/mke2fs.conf"; \ - else \ - $(ES) " INSTALL_DATA $(root_sysconfdir)/mke2fs.conf"; \ - mv $(DESTDIR)$(root_sysconfdir)/mke2fs.conf \ - $(DESTDIR)$(root_sysconfdir)/mke2fs.conf.e2fsprogs-old; \ - $(INSTALL_DATA) mke2fs.conf \ - $(DESTDIR)$(root_sysconfdir)/mke2fs.conf; \ - echo "Your mke2fs.conf is too old. Backing up old version in"; \ - echo "$(DESTDIR)$(root_sysconfdir)/mke2fs.conf.e2fsprogs-old. Please check to see"; \ - echo "if you have any local customizations that you wish to preserve."; \ - fi; \ + $(ES) " INSTALL_DATA $(root_sysconfdir)/mke2fs.conf.e2fsprogs-new"; \ + $(INSTALL_DATA) mke2fs.conf \ + $(DESTDIR)$(root_sysconfdir)/mke2fs.conf.e2fsprogs-new; \ + echo "Warning: installing mke2fs.conf in $(DESTDIR)$(root_sysconfdir)/mke2fs.conf.e2fsprogs-new"; \ + echo "Check to see if you need to update your $(root_sysconfdir)/mke2fs.conf"; \ echo " "; \ fi; \ else \ @@ -565,8 +554,7 @@ uninstall: done $(RM) -f $(DESTDIR)$(root_sbindir)/mkfs.ext2 \ $(DESTDIR)$(root_sbindir)/mkfs.ext3 \ - $(DESTDIR)$(root_sbindir)/mkfs.ext4 \ - $(DESTDIR)$(root_sbindir)/mkfs.ext4dev + $(DESTDIR)$(root_sbindir)/mkfs.ext4 for i in $(UPROGS); do \ $(RM) -f $(DESTDIR)$(bindir)/$$i; \ done @@ -576,11 +564,9 @@ uninstall: $(RM) -f $(DESTDIR)$(man8dir)/mkfs.ext2.8 \ $(DESTDIR)$(man8dir)/mkfs.ext3.8 \ $(DESTDIR)$(man8dir)/mkfs.ext4.8 \ - $(DESTDIR)$(man8dir)/mkfs.ext4dev.8 \ $(DESTDIR)$(man8dir)/fsck.ext2.8 \ $(DESTDIR)$(man8dir)/fsck.ext3.8 \ - $(DESTDIR)$(man8dir)/fsck.ext4.8 \ - $(DESTDIR)$(man8dir)/fsck.ext4dev.8 + $(DESTDIR)$(man8dir)/fsck.ext4.8 for i in $(UMANPAGES); do \ $(RM) -f $(DESTDIR)$(man1dir)/$$i; \ diff --git a/misc/fsck.c b/misc/fsck.c index 826aaeb..2df15cd 100644 --- a/misc/fsck.c +++ b/misc/fsck.c @@ -84,7 +84,6 @@ static const char *really_wanted[] = { "ext2", "ext3", "ext4", - "ext4dev", "jfs", "reiserfs", "xiafs", @@ -455,8 +454,7 @@ static int execute(const char *type, const char *device, const char *mntpt, if (progress) { if ((strcmp(type, "ext2") == 0) || (strcmp(type, "ext3") == 0) || - (strcmp(type, "ext4") == 0) || - (strcmp(type, "ext4dev") == 0)) { + (strcmp(type, "ext4") == 0)) { char tmp[80]; tmp[0] = 0; @@ -632,8 +630,7 @@ static struct fsck_instance *wait_one(int flags) continue; if (strcmp(inst2->type, "ext2") && strcmp(inst2->type, "ext3") && - strcmp(inst2->type, "ext4") && - strcmp(inst2->type, "ext4dev")) + strcmp(inst2->type, "ext4")) continue; /* * If we've just started the fsck, wait a tiny diff --git a/misc/mke2fs.8.in b/misc/mke2fs.8.in index 9c38e20..9015770 100644 --- a/misc/mke2fs.8.in +++ b/misc/mke2fs.8.in @@ -299,10 +299,6 @@ The \fBroot_owner=\fR option allows explicitly specifying these values, and avoid side-effects for users that do not expect the contents of the filesystem to change based on the user running \fBmke2fs\fR. .TP -.B test_fs -Set a flag in the filesystem superblock indicating that it may be -mounted using experimental kernel code, such as the ext4dev filesystem. -.TP .BI discard Attempt to discard blocks at mkfs time (discarding blocks initially is useful on solid state devices and sparse / thin-provisioned storage). When the device diff --git a/misc/mke2fs.c b/misc/mke2fs.c index facbe4c..44d1a60 100644 --- a/misc/mke2fs.c +++ b/misc/mke2fs.c @@ -952,8 +952,6 @@ static void parse_extended_opts(struct ext2_super_block *param, param->s_reserved_gdt_blocks = rsv_gdb; } - } else if (!strcmp(token, "test_fs")) { - param->s_flags |= EXT2_FLAGS_TEST_FILESYS; } else if (!strcmp(token, "lazy_itable_init")) { if (arg) lazy_itable_init = strtoul(arg, &p, 0); @@ -1031,7 +1029,6 @@ static void parse_extended_opts(struct ext2_super_block *param, "\tlazy_journal_init=<0 to disable, 1 to enable>\n" "\troot_uid=\n" "\troot_gid=\n" - "\ttest_fs\n" "\tdiscard\n" "\tnodiscard\n" "\tquotatype=\n\n"), @@ -1244,8 +1241,7 @@ static char **parse_fs_type(const char *fs_type, strcmp(ext_type, "ext2")) { printf(_("\nYour mke2fs.conf file does not define the " "%s filesystem type.\n"), ext_type); - if (!strcmp(ext_type, "ext3") || !strcmp(ext_type, "ext4") || - !strcmp(ext_type, "ext4dev")) { + if (!strcmp(ext_type, "ext3") || !strcmp(ext_type, "ext4")) { printf("%s", _("You probably need to install an " "updated mke2fs.conf file.\n\n")); } @@ -2670,9 +2666,6 @@ int main (int argc, char *argv[]) io_channel_set_options(fs->io, opt_string); } - if (fs_param.s_flags & EXT2_FLAGS_TEST_FILESYS) - fs->super->s_flags |= EXT2_FLAGS_TEST_FILESYS; - if ((fs_param.s_feature_incompat & (EXT3_FEATURE_INCOMPAT_EXTENTS|EXT4_FEATURE_INCOMPAT_FLEX_BG)) || (fs_param.s_feature_ro_compat & diff --git a/misc/mke2fs.conf.in b/misc/mke2fs.conf.in index 178733f..980bf9c 100644 --- a/misc/mke2fs.conf.in +++ b/misc/mke2fs.conf.in @@ -15,11 +15,6 @@ auto_64-bit_support = 1 inode_size = 256 } - ext4dev = { - features = has_journal,extent,huge_file,flex_bg,metadata_csum,64bit,dir_nlink,extra_isize - inode_size = 256 - options = test_fs=1 - } small = { blocksize = 1024 inode_size = 128 diff --git a/misc/tune2fs.8.in b/misc/tune2fs.8.in index 9455707..c1c64e7 100644 --- a/misc/tune2fs.8.in +++ b/misc/tune2fs.8.in @@ -231,14 +231,6 @@ program. .IP This superblock setting is only honored in 2.6.35+ kernels; and not at all by the ext2 and ext3 file system drivers. -.TP -.B test_fs -Set a flag in the filesystem superblock indicating that it may be -mounted using experimental kernel code, such as the ext4dev filesystem. -.TP -.B ^test_fs -Clear the test_fs flag, indicating the filesystem should only be mounted -using production-level filesystem code. .RE .TP .B \-f diff --git a/misc/tune2fs.c b/misc/tune2fs.c index 8ff47d2..5bc38cb 100644 --- a/misc/tune2fs.c +++ b/misc/tune2fs.c @@ -1735,14 +1735,6 @@ static int parse_extended_opts(ext2_filsys fs, const char *opts) intv); fs->super->s_mmp_update_interval = intv; ext2fs_mark_super_dirty(fs); - } else if (!strcmp(token, "test_fs")) { - fs->super->s_flags |= EXT2_FLAGS_TEST_FILESYS; - printf("Setting test filesystem flag\n"); - ext2fs_mark_super_dirty(fs); - } else if (!strcmp(token, "^test_fs")) { - fs->super->s_flags &= ~EXT2_FLAGS_TEST_FILESYS; - printf("Clearing test filesystem flag\n"); - ext2fs_mark_super_dirty(fs); } else if (strcmp(token, "stride") == 0) { if (!arg) { r_usage++; @@ -1815,9 +1807,7 @@ static int parse_extended_opts(ext2_filsys fs, const char *opts) "\thash_alg=\n" "\tmount_opts=\n" "\tstride=\n" - "\tstripe_width=\n" - "\ttest_fs\n" - "\t^test_fs\n")); + "\tstripe_width=\n")); free(buf); return 1; } diff --git a/tests/mke2fs.conf.in b/tests/mke2fs.conf.in index c06050d..ee246ba 100644 --- a/tests/mke2fs.conf.in +++ b/tests/mke2fs.conf.in @@ -17,11 +17,6 @@ features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize inode_size = 256 } - ext4dev = { - features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize - inode_size = 256 - options = test_fs=1 - } small = { blocksize = 1024 inode_size = 128 -- 1.8.3.1