From: John Ferlan Date: Tue, 15 Nov 2016 20:29:47 +0000 (-0500) Subject: fs: Add proper switch to create filesystem with overwrite X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=135e77d32fe9e7299f5c82757563e5a6d28e2f3c;p=libvirt.git fs: Add proper switch to create filesystem with overwrite https://bugzilla.redhat.com/show_bug.cgi?id=1366460 When using the --overwrite switch on a pool-build or pool-create, the The mkfs.ext{2|3|4} commands use mke2fs which requires using the '-F' switch in order to force overwriting the current filesystem on the whole disk. Likewise, the mkfs.vfat command uses mkfs.fat which requires using the '-I' switch in order to force overwriting the current filesystem on the whole disk. --- diff --git a/src/storage/storage_backend_fs.c b/src/storage/storage_backend_fs.c index 6c8bae22ce..de0e8d57df 100644 --- a/src/storage/storage_backend_fs.c +++ b/src/storage/storage_backend_fs.c @@ -712,9 +712,17 @@ virStorageBackendExecuteMKFS(const char *device, cmd = virCommandNewArgList(MKFS, "-t", format, NULL); - /* use the force, otherwise mkfs.xfs won't overwrite existing fs */ + /* use the force, otherwise mkfs.xfs won't overwrite existing fs. + * Similarly mkfs.ext2, mkfs.ext3, and mkfs.ext4 require supplying -F + * and mkfs.vfat uses -I */ if (STREQ(format, "xfs")) virCommandAddArg(cmd, "-f"); + else if (STREQ(format, "ext2") || + STREQ(format, "ext3") || + STREQ(format, "ext4")) + virCommandAddArg(cmd, "-F"); + else if (STREQ(format, "vfat")) + virCommandAddArg(cmd, "-I"); virCommandAddArg(cmd, device);