tags 989612 +pending
thanks

Thanks for reporting this bug.  The following commit should fix the
issue.

                                                - Ted

commit 942b00cb9d2f2b52f4c58877d523145ee59a89b0
Author: Theodore Ts'o <ty...@mit.edu>
Date:   Wed Jul 21 15:46:09 2021 -0400

    mke2fs: do not warn about a pre-existing partition table when using a 
non-zero offset
    
    The existing code attempted to avoid warning about a pre-existing file
    system with a non-zero offset, but because the offset was not set at
    the time of the check, this intention was not actually working.  So
    this commit will suppress warnings about pre-existing a partition
    table as well as pre-existing file system when there is a non-zero
    offset.
    
    Addresses-Debian-Bug: #989612
    Signed-off-by: Theodore Ts'o <ty...@mit.edu>

diff --git a/lib/support/plausible.c b/lib/support/plausible.c
index 2a3ae140..bbed2a70 100644
--- a/lib/support/plausible.c
+++ b/lib/support/plausible.c
@@ -282,11 +282,11 @@ int check_plausibility(const char *device, int flags, int 
*ret_is_dev)
                return !has_magic;
        }
 #endif
-
-       ret = check_partition_table(device);
-       if (ret >= 0)
-               return ret;
-
+       if (flags & CHECK_FS_EXIST) {
+               ret = check_partition_table(device);
+               if (ret >= 0)
+                       return ret;
+       }
        return 1;
 }
 
diff --git a/misc/mke2fs.c b/misc/mke2fs.c
index 5a35e9ef..c7b32316 100644
--- a/misc/mke2fs.c
+++ b/misc/mke2fs.c
@@ -1973,18 +1973,8 @@ profile_error:
        profile_get_integer(profile, "options", "proceed_delay", 0, 0,
                            &proceed_delay);
 
-       /* The isatty() test is so we don't break existing scripts */
-       flags = CREATE_FILE;
-       if (isatty(0) && isatty(1) && !offset)
-               flags |= CHECK_FS_EXIST;
-       if (!quiet)
-               flags |= VERBOSE_CREATE;
-       if (fs_blocks_count == 0)
-               flags |= NO_SIZE;
-       else
+       if (fs_blocks_count)
                explicit_fssize = 1;
-       if (!check_plausibility(device_name, flags, &is_device) && !force)
-               proceed_question(proceed_delay);
 
        check_mount(device_name, force, _("filesystem"));
 
@@ -2650,6 +2640,17 @@ profile_error:
 
        free(fs_type);
        free(usage_types);
+
+       /* The isatty() test is so we don't break existing scripts */
+       flags = CREATE_FILE;
+       if (isatty(0) && isatty(1) && !offset)
+               flags |= CHECK_FS_EXIST;
+       if (!quiet)
+               flags |= VERBOSE_CREATE;
+       if (!explicit_fssize)
+               flags |= NO_SIZE;
+       if (!check_plausibility(device_name, flags, &is_device) && !force)
+               proceed_question(proceed_delay);
 }
 
 static int should_do_undo(const char *name)

Reply via email to