]> git.sesse.net Git - bcachefs-tools-debian/commitdiff
bcachefs-tools: don't skip stale superblock wipe in force mode
authorBrian Foster <bfoster@redhat.com>
Mon, 27 Nov 2023 18:31:10 +0000 (13:31 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Tue, 28 Nov 2023 02:04:03 +0000 (21:04 -0500)
Even though the blkid wipe has been fixed to detect and wipe old
superblocks, we still incorrectly skip the wipe when in force mode.
Update the force logic in open_for_format() to bypass the user
request and otherwise proceed with the wipe.

Signed-off-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
tools-util.c

index 7d4a3c1c30dff8dd9261e0a3eee313638ac9a4a4..a1e67dd51ad12fc38f64c1fc5254ac3640bdb85a 100644 (file)
@@ -225,9 +225,6 @@ int open_for_format(struct dev_opts *dev, bool force)
        if (ret < 0)
                die("Error opening device to format %s: %s", dev->path, strerror(-ret));
 
-       if (force)
-               return 0;
-
        if (!(pr = blkid_new_probe()))
                die("blkid error 1");
        if (blkid_probe_set_device(pr, dev->bdev->bd_buffered_fd, 0, 0))
@@ -250,9 +247,11 @@ int open_for_format(struct dev_opts *dev, bool force)
                else
                        printf("%s contains a %s filesystem\n",
                               dev->path, fs_type);
-               fputs("Proceed anyway?", stdout);
-               if (!ask_yn())
-                       exit(EXIT_FAILURE);
+               if (!force) {
+                       fputs("Proceed anyway?", stdout);
+                       if (!ask_yn())
+                               exit(EXIT_FAILURE);
+               }
                while (blkid_do_probe(pr) == 0) {
                        if (blkid_do_wipe(pr, 0))
                                die("Failed to wipe preexisting metadata.");