summaryrefslogtreecommitdiffstats
path: root/daemon/mkfs.c
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2011-03-25 14:34:31 +0000
committerRichard W.M. Jones <rjones@redhat.com>2011-03-29 20:25:43 +0100
commitaff24a249a37ccc96e173732c864895f800fe623 (patch)
tree27b2bd7d65fe13c496ecc14966f6e090a855f953 /daemon/mkfs.c
parentd31af9918085e476d78bed6a6b4aa7c9df887501 (diff)
downloadlibguestfs-aff24a249a37ccc96e173732c864895f800fe623.tar.gz
libguestfs-aff24a249a37ccc96e173732c864895f800fe623.tar.xz
libguestfs-aff24a249a37ccc96e173732c864895f800fe623.zip
mkfs: Force mke2fs to create a filesystem even on raw IDE device (RHBZ#690819).
(cherry picked from commit 227bea6c7ef89b707fe2c01c4d0d0fb9081e8c04)
Diffstat (limited to 'daemon/mkfs.c')
-rw-r--r--daemon/mkfs.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/daemon/mkfs.c b/daemon/mkfs.c
index cc0ead18..3c955126 100644
--- a/daemon/mkfs.c
+++ b/daemon/mkfs.c
@@ -1,5 +1,5 @@
/* libguestfs - the guestfsd daemon
- * Copyright (C) 2009 Red Hat Inc.
+ * Copyright (C) 2009-2011 Red Hat Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -41,10 +41,26 @@ do_mkfs_opts (const char *fstype, const char *device, int blocksize)
int r;
char *err;
- argv[i++] = "mkfs";
+ /* For ext2/3/4 run the mke2fs program directly. This is because
+ * the mkfs program "eats" some options, in particular the -F
+ * option.
+ */
+ if (STREQ (fstype, "ext2") || STREQ (fstype, "ext3") ||
+ STREQ (fstype, "ext4"))
+ argv[i++] = "mke2fs";
+ else
+ argv[i++] = "mkfs";
+
argv[i++] = "-t";
argv[i++] = fstype;
+ /* Force mke2fs to create a filesystem, even if it thinks it
+ * shouldn't (RHBZ#690819).
+ */
+ if (STREQ (fstype, "ext2") || STREQ (fstype, "ext3") ||
+ STREQ (fstype, "ext4"))
+ argv[i++] = "-F";
+
/* mkfs.ntfs requires the -Q argument otherwise it writes zeroes
* to every block and does bad block detection, neither of which
* are useful behaviour for virtual devices.