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 <bfoster@redhat.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
Brian Foster 2023-11-27 13:31:10 -05:00 committed by Kent Overstreet
parent 843707ede6
commit 1cdb7812d1

View 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);
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.");