btrfs_wipe_existing_sb() misses calling blkid_do_fullprobe() to do the real probe. After calling blkid_new_probe() & blkid_probe_set_device() to setup blkid_probe context, it directly calls blkid_probe_lookup_value(). This results in blkid_probe_lookup_value returning -1, because pr->values is empty.
Signed-off-by: Fox Chen <foxhlc...@gmail.com> --- common/device-utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/device-utils.c b/common/device-utils.c index c860b946..f8e2e776 100644 --- a/common/device-utils.c +++ b/common/device-utils.c @@ -114,7 +114,7 @@ static int btrfs_wipe_existing_sb(int fd) if (!pr) return -1; - if (blkid_probe_set_device(pr, fd, 0, 0)) { + if (blkid_probe_set_device(pr, fd, 0, 0) || blkid_do_fullprobe(pr)) { ret = -1; goto out; } -- 2.31.0