summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2011-03-25 14:42:40 +0000
committerRichard W.M. Jones <rjones@redhat.com>2011-03-25 14:42:40 +0000
commita0e3b2183733c7440ad017c4ffe361935672339b (patch)
treebead1157865f1c7d76e704727905fcb2f6abd55f
parent227bea6c7ef89b707fe2c01c4d0d0fb9081e8c04 (diff)
downloadlibguestfs-a0e3b2183733c7440ad017c4ffe361935672339b.tar.gz
libguestfs-a0e3b2183733c7440ad017c4ffe361935672339b.tar.xz
libguestfs-a0e3b2183733c7440ad017c4ffe361935672339b.zip
RHEL 5: Use mke4fs on RHEL 5 as replacement for mke2fs.
Notes
Notes: Labels: cleanup, forcestable Depends: 227bea6c7ef89b707fe2c01c4d0d0fb9081e8c04
-rw-r--r--daemon/daemon.h5
-rw-r--r--daemon/ext2.c2
-rw-r--r--daemon/mkfs.c6
3 files changed, 10 insertions, 3 deletions
diff --git a/daemon/daemon.h b/daemon/daemon.h
index 79f41aed..3a67758b 100644
--- a/daemon/daemon.h
+++ b/daemon/daemon.h
@@ -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
@@ -128,6 +128,9 @@ extern struct optgroup optgroups[];
/* Use this as a replacement for sync(2). */
extern int sync_disks (void);
+/*-- in ext2.c --*/
+extern int e2prog (char *name); /* Massive hack for RHEL 5. */
+
/*-- in lvm.c --*/
extern int lv_canonical (const char *device, char **ret);
diff --git a/daemon/ext2.c b/daemon/ext2.c
index 85ce3165..01a46287 100644
--- a/daemon/ext2.c
+++ b/daemon/ext2.c
@@ -39,7 +39,7 @@
* We specify e4fsprogs in the package list to ensure it is loaded
* if it exists.
*/
-static int
+int
e2prog (char *name)
{
char *p = strstr (name, "e2");
diff --git a/daemon/mkfs.c b/daemon/mkfs.c
index ea9fd7f9..cd272686 100644
--- a/daemon/mkfs.c
+++ b/daemon/mkfs.c
@@ -41,13 +41,17 @@ do_mkfs_opts (const char *fstype, const char *device, int blocksize, const char
int r;
char *err;
+ char mke2fs[] = "mke2fs";
+ if (e2prog (mke2fs) == -1)
+ return -1;
+
/* 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";
+ argv[i++] = mke2fs;
else
argv[i++] = "mkfs";