[libvirt] [PATCH] fs: Add proper switch to create filesystem with overwrite

John Ferlan jferlan at redhat.com
Tue Nov 15 20:37:02 UTC 2016


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.

Signed-off-by: John Ferlan <jferlan at redhat.com>
---
 src/storage/storage_backend_fs.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/storage/storage_backend_fs.c b/src/storage/storage_backend_fs.c
index 6c8bae2..de0e8d5 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);
 
-- 
2.7.4




More information about the libvir-list mailing list