From 796a10de467b1d05003d098c586fffc1bd006b88 Mon Sep 17 00:00:00 2001 From: Brian Foster Date: Mon, 27 Nov 2023 13:31:10 -0500 Subject: [PATCH] bcachefs-tools: don't skip stale superblock wipe in force mode 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 Signed-off-by: Kent Overstreet --- tools-util.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/tools-util.c b/tools-util.c index 7d4a3c1c..a1e67dd5 100644 --- a/tools-util.c +++ b/tools-util.c @@ -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.");