diff options
Diffstat (limited to 'daemon')
-rw-r--r-- | daemon/daemon.h | 5 | ||||
-rw-r--r-- | daemon/ext2.c | 2 | ||||
-rw-r--r-- | daemon/mkfs.c | 6 |
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"; |