forked from pool/libguestfs
Olaf Hering
e114d9a2d1
Add patch to collect a list of all called binaries from guestfsd patch mkinitrd to copy links (bnc#778149) OBS-URL: https://build.opensuse.org/package/show/Virtualization/libguestfs?expand=0&rev=34
376 lines
11 KiB
Diff
376 lines
11 KiB
Diff
From 8082d42017b9946b40b3d1ffb27b83a310118cc0 Mon Sep 17 00:00:00 2001
|
|
From: "Richard W.M. Jones" <rjones@redhat.com>
|
|
Date: Thu, 30 Aug 2012 17:29:36 +0100
|
|
Subject: [PATCH 1/2] daemon: Remove e2prog hack (only needed for RHEL 5).
|
|
|
|
Instead this patch will be carried out of tree in the oldlinux branch.
|
|
---
|
|
daemon/daemon.h | 2 -
|
|
daemon/ext2.c | 112 ++++++++------------------------------------------------
|
|
daemon/labels.c | 6 +--
|
|
daemon/mkfs.c | 8 +---
|
|
4 Dateien geändert, 18 Zeilen hinzugefügt(+), 110 Zeilen entfernt(-)
|
|
|
|
diff --git a/daemon/daemon.h b/daemon/daemon.h
|
|
index bbe77f9..d17dcbd 100644
|
|
--- a/daemon/daemon.h
|
|
+++ b/daemon/daemon.h
|
|
@@ -171,8 +171,6 @@ extern int filesystem_available (const char *filesystem);
|
|
extern int sync_disks (void);
|
|
|
|
/*-- in ext2.c --*/
|
|
-extern int e2prog (char *name); /* Massive hack for RHEL 5. */
|
|
-
|
|
/* Confirmed this is true up to ext4 from the Linux sources. */
|
|
#define EXT2_LABEL_MAX 16
|
|
|
|
diff --git a/daemon/ext2.c b/daemon/ext2.c
|
|
index 7876e66..943b441 100644
|
|
--- a/daemon/ext2.c
|
|
+++ b/daemon/ext2.c
|
|
@@ -31,32 +31,6 @@
|
|
|
|
#define MAX_ARGS 64
|
|
|
|
-/* Choose which tools like mke2fs to use. For RHEL 5 (only) there
|
|
- * is a special set of tools which support ext2/3/4. eg. On RHEL 5,
|
|
- * mke2fs only supports ext2/3, but mke4fs supports ext2/3/4.
|
|
- *
|
|
- * We specify e4fsprogs in the package list to ensure it is loaded
|
|
- * if it exists.
|
|
- */
|
|
-int
|
|
-e2prog (char *name)
|
|
-{
|
|
- char *p = strstr (name, "e2");
|
|
- if (!p) return 0;
|
|
- p++;
|
|
-
|
|
- *p = '4';
|
|
- if (prog_exists (name))
|
|
- return 0;
|
|
-
|
|
- *p = '2';
|
|
- if (prog_exists (name))
|
|
- return 0;
|
|
-
|
|
- reply_with_error ("cannot find required program %s", name);
|
|
- return -1;
|
|
-}
|
|
-
|
|
char **
|
|
do_tune2fs_l (const char *device)
|
|
{
|
|
@@ -65,11 +39,7 @@ do_tune2fs_l (const char *device)
|
|
char *p, *pend, *colon;
|
|
DECLARE_STRINGSBUF (ret);
|
|
|
|
- char prog[] = "tune2fs";
|
|
- if (e2prog (prog) == -1)
|
|
- return NULL;
|
|
-
|
|
- r = command (&out, &err, prog, "-l", device, NULL);
|
|
+ r = command (&out, &err, "tune2fs", "-l", device, NULL);
|
|
if (r == -1) {
|
|
reply_with_error ("%s", err);
|
|
free (err);
|
|
@@ -165,11 +135,7 @@ do_set_e2uuid (const char *device, const char *uuid)
|
|
int r;
|
|
char *err;
|
|
|
|
- char prog[] = "tune2fs";
|
|
- if (e2prog (prog) == -1)
|
|
- return -1;
|
|
-
|
|
- r = command (NULL, &err, prog, "-U", uuid, device, NULL);
|
|
+ r = command (NULL, &err, "tune2fs", "-U", uuid, device, NULL);
|
|
if (r == -1) {
|
|
reply_with_error ("%s", err);
|
|
free (err);
|
|
@@ -192,17 +158,13 @@ if_not_mounted_run_e2fsck (const char *device)
|
|
{
|
|
char *err;
|
|
int r, mounted;
|
|
- char prog[] = "e2fsck";
|
|
-
|
|
- if (e2prog (prog) == -1)
|
|
- return -1;
|
|
|
|
mounted = is_device_mounted (device);
|
|
if (mounted == -1)
|
|
return -1;
|
|
|
|
if (!mounted) {
|
|
- r = command (NULL, &err, prog, "-fy", device, NULL);
|
|
+ r = command (NULL, &err, "e2fsck", "-fy", device, NULL);
|
|
if (r == -1) {
|
|
reply_with_error ("%s", err);
|
|
free (err);
|
|
@@ -220,14 +182,10 @@ do_resize2fs (const char *device)
|
|
char *err;
|
|
int r;
|
|
|
|
- char prog[] = "resize2fs";
|
|
- if (e2prog (prog) == -1)
|
|
- return -1;
|
|
-
|
|
if (if_not_mounted_run_e2fsck (device) == -1)
|
|
return -1;
|
|
|
|
- r = command (NULL, &err, prog, device, NULL);
|
|
+ r = command (NULL, &err, "resize2fs", device, NULL);
|
|
if (r == -1) {
|
|
reply_with_error ("%s", err);
|
|
free (err);
|
|
@@ -244,10 +202,6 @@ do_resize2fs_size (const char *device, int64_t size)
|
|
char *err;
|
|
int r;
|
|
|
|
- char prog[] = "resize2fs";
|
|
- if (e2prog (prog) == -1)
|
|
- return -1;
|
|
-
|
|
/* resize2fs itself may impose additional limits. Since we are
|
|
* going to use the 'K' suffix however we can only work with whole
|
|
* kilobytes.
|
|
@@ -265,7 +219,7 @@ do_resize2fs_size (const char *device, int64_t size)
|
|
char buf[32];
|
|
snprintf (buf, sizeof buf, "%" PRIi64 "K", size);
|
|
|
|
- r = command (NULL, &err, prog, device, buf, NULL);
|
|
+ r = command (NULL, &err, "resize2fs", device, buf, NULL);
|
|
if (r == -1) {
|
|
reply_with_error ("%s", err);
|
|
free (err);
|
|
@@ -282,14 +236,10 @@ do_resize2fs_M (const char *device)
|
|
char *err;
|
|
int r;
|
|
|
|
- char prog[] = "resize2fs";
|
|
- if (e2prog (prog) == -1)
|
|
- return -1;
|
|
-
|
|
if (if_not_mounted_run_e2fsck (device) == -1)
|
|
return -1;
|
|
|
|
- r = command (NULL, &err, prog, "-M", device, NULL);
|
|
+ r = command (NULL, &err, "resize2fs", "-M", device, NULL);
|
|
if (r == -1) {
|
|
reply_with_error ("%s", err);
|
|
free (err);
|
|
@@ -310,10 +260,6 @@ do_e2fsck (const char *device,
|
|
char *err;
|
|
size_t i = 0;
|
|
int r;
|
|
- char prog[] = "e2fsck";
|
|
-
|
|
- if (e2prog (prog) == -1)
|
|
- return -1;
|
|
|
|
/* Default if not selected. */
|
|
if (!(optargs_bitmask & GUESTFS_E2FSCK_CORRECT_BITMASK))
|
|
@@ -326,7 +272,7 @@ do_e2fsck (const char *device,
|
|
return -1;
|
|
}
|
|
|
|
- ADD_ARG (argv, i, prog);
|
|
+ ADD_ARG (argv, i, "e2fsck");
|
|
ADD_ARG (argv, i, "-f");
|
|
|
|
if (correct)
|
|
@@ -369,15 +315,11 @@ do_mke2journal (int blocksize, const char *device)
|
|
char *err;
|
|
int r;
|
|
|
|
- char prog[] = "mke2fs";
|
|
- if (e2prog (prog) == -1)
|
|
- return -1;
|
|
-
|
|
char blocksize_s[32];
|
|
snprintf (blocksize_s, sizeof blocksize_s, "%d", blocksize);
|
|
|
|
r = command (NULL, &err,
|
|
- prog, "-F", "-O", "journal_dev", "-b", blocksize_s,
|
|
+ "mke2fs", "-F", "-O", "journal_dev", "-b", blocksize_s,
|
|
device, NULL);
|
|
if (r == -1) {
|
|
reply_with_error ("%s", err);
|
|
@@ -395,10 +337,6 @@ do_mke2journal_L (int blocksize, const char *label, const char *device)
|
|
char *err;
|
|
int r;
|
|
|
|
- char prog[] = "mke2fs";
|
|
- if (e2prog (prog) == -1)
|
|
- return -1;
|
|
-
|
|
if (strlen (label) > EXT2_LABEL_MAX) {
|
|
reply_with_error ("%s: ext2 labels are limited to %d bytes",
|
|
label, EXT2_LABEL_MAX);
|
|
@@ -409,7 +347,7 @@ do_mke2journal_L (int blocksize, const char *label, const char *device)
|
|
snprintf (blocksize_s, sizeof blocksize_s, "%d", blocksize);
|
|
|
|
r = command (NULL, &err,
|
|
- prog, "-F", "-O", "journal_dev", "-b", blocksize_s,
|
|
+ "mke2fs", "-F", "-O", "journal_dev", "-b", blocksize_s,
|
|
"-L", label,
|
|
device, NULL);
|
|
if (r == -1) {
|
|
@@ -428,15 +366,11 @@ do_mke2journal_U (int blocksize, const char *uuid, const char *device)
|
|
char *err;
|
|
int r;
|
|
|
|
- char prog[] = "mke2fs";
|
|
- if (e2prog (prog) == -1)
|
|
- return -1;
|
|
-
|
|
char blocksize_s[32];
|
|
snprintf (blocksize_s, sizeof blocksize_s, "%d", blocksize);
|
|
|
|
r = command (NULL, &err,
|
|
- prog, "-F", "-O", "journal_dev", "-b", blocksize_s,
|
|
+ "mke2fs", "-F", "-O", "journal_dev", "-b", blocksize_s,
|
|
"-U", uuid,
|
|
device, NULL);
|
|
if (r == -1) {
|
|
@@ -456,10 +390,6 @@ do_mke2fs_J (const char *fstype, int blocksize, const char *device,
|
|
char *err;
|
|
int r;
|
|
|
|
- char prog[] = "mke2fs";
|
|
- if (e2prog (prog) == -1)
|
|
- return -1;
|
|
-
|
|
char blocksize_s[32];
|
|
snprintf (blocksize_s, sizeof blocksize_s, "%d", blocksize);
|
|
|
|
@@ -468,7 +398,7 @@ do_mke2fs_J (const char *fstype, int blocksize, const char *device,
|
|
snprintf (jdev, len+32, "device=%s", journal);
|
|
|
|
r = command (NULL, &err,
|
|
- prog, "-F", "-t", fstype, "-J", jdev, "-b", blocksize_s,
|
|
+ "mke2fs", "-F", "-t", fstype, "-J", jdev, "-b", blocksize_s,
|
|
device, NULL);
|
|
if (r == -1) {
|
|
reply_with_error ("%s", err);
|
|
@@ -487,10 +417,6 @@ do_mke2fs_JL (const char *fstype, int blocksize, const char *device,
|
|
char *err;
|
|
int r;
|
|
|
|
- char prog[] = "mke2fs";
|
|
- if (e2prog (prog) == -1)
|
|
- return -1;
|
|
-
|
|
if (strlen (label) > EXT2_LABEL_MAX) {
|
|
reply_with_error ("%s: ext2 labels are limited to %d bytes",
|
|
label, EXT2_LABEL_MAX);
|
|
@@ -505,7 +431,7 @@ do_mke2fs_JL (const char *fstype, int blocksize, const char *device,
|
|
snprintf (jdev, len+32, "device=LABEL=%s", label);
|
|
|
|
r = command (NULL, &err,
|
|
- prog, "-F", "-t", fstype, "-J", jdev, "-b", blocksize_s,
|
|
+ "mke2fs", "-F", "-t", fstype, "-J", jdev, "-b", blocksize_s,
|
|
device, NULL);
|
|
if (r == -1) {
|
|
reply_with_error ("%s", err);
|
|
@@ -524,10 +450,6 @@ do_mke2fs_JU (const char *fstype, int blocksize, const char *device,
|
|
char *err;
|
|
int r;
|
|
|
|
- char prog[] = "mke2fs";
|
|
- if (e2prog (prog) == -1)
|
|
- return -1;
|
|
-
|
|
char blocksize_s[32];
|
|
snprintf (blocksize_s, sizeof blocksize_s, "%d", blocksize);
|
|
|
|
@@ -536,7 +458,7 @@ do_mke2fs_JU (const char *fstype, int blocksize, const char *device,
|
|
snprintf (jdev, len+32, "device=UUID=%s", uuid);
|
|
|
|
r = command (NULL, &err,
|
|
- prog, "-F", "-t", fstype, "-J", jdev, "-b", blocksize_s,
|
|
+ "mke2fs", "-F", "-t", fstype, "-J", jdev, "-b", blocksize_s,
|
|
device, NULL);
|
|
if (r == -1) {
|
|
reply_with_error ("%s", err);
|
|
@@ -566,7 +488,6 @@ do_tune2fs (const char *device, /* only required parameter */
|
|
size_t i = 0;
|
|
int r;
|
|
char *err;
|
|
- char prog[] = "tune2fs";
|
|
char maxmountcount_s[64];
|
|
char mountcount_s[64];
|
|
char group_s[64];
|
|
@@ -575,10 +496,7 @@ do_tune2fs (const char *device, /* only required parameter */
|
|
char reservedblockscount_s[64];
|
|
char user_s[64];
|
|
|
|
- if (e2prog (prog) == -1)
|
|
- return -1;
|
|
-
|
|
- ADD_ARG (argv, i, prog);
|
|
+ ADD_ARG (argv, i, "tune2fs");
|
|
|
|
if (optargs_bitmask & GUESTFS_TUNE2FS_FORCE_BITMASK) {
|
|
if (force)
|
|
@@ -686,7 +604,7 @@ do_tune2fs (const char *device, /* only required parameter */
|
|
|
|
r = commandv (NULL, &err, argv);
|
|
if (r == -1) {
|
|
- reply_with_error ("%s: %s: %s", prog, device, err);
|
|
+ reply_with_error ("%s: %s", device, err);
|
|
free (err);
|
|
return -1;
|
|
}
|
|
diff --git a/daemon/labels.c b/daemon/labels.c
|
|
index b28d1b2..5c59a4c 100644
|
|
--- a/daemon/labels.c
|
|
+++ b/daemon/labels.c
|
|
@@ -33,17 +33,13 @@ e2label (const char *device, const char *label)
|
|
int r;
|
|
char *err;
|
|
|
|
- char prog[] = "e2label";
|
|
- if (e2prog (prog) == -1)
|
|
- return -1;
|
|
-
|
|
if (strlen (label) > EXT2_LABEL_MAX) {
|
|
reply_with_error ("%s: ext2 labels are limited to %d bytes",
|
|
label, EXT2_LABEL_MAX);
|
|
return -1;
|
|
}
|
|
|
|
- r = command (NULL, &err, prog, device, label, NULL);
|
|
+ r = command (NULL, &err, "e2label", device, label, NULL);
|
|
if (r == -1) {
|
|
reply_with_error ("%s", err);
|
|
free (err);
|
|
diff --git a/daemon/mkfs.c b/daemon/mkfs.c
|
|
index c7ae50d..7d28061 100644
|
|
--- a/daemon/mkfs.c
|
|
+++ b/daemon/mkfs.c
|
|
@@ -43,7 +43,6 @@ do_mkfs (const char *fstype, const char *device, int blocksize,
|
|
char sectorsize_str[32];
|
|
int r;
|
|
char *err;
|
|
- char mke2fs[] = "mke2fs";
|
|
int extfs = 0;
|
|
|
|
if (STREQ (fstype, "ext2") || STREQ (fstype, "ext3") ||
|
|
@@ -54,11 +53,8 @@ do_mkfs (const char *fstype, const char *device, int blocksize,
|
|
* the mkfs program "eats" some options, in particular the -F
|
|
* option.
|
|
*/
|
|
- if (extfs) {
|
|
- if (e2prog (mke2fs) == -1)
|
|
- return -1;
|
|
- ADD_ARG (argv, i, mke2fs);
|
|
- }
|
|
+ if (extfs)
|
|
+ ADD_ARG (argv, i, "mke2fs");
|
|
else
|
|
ADD_ARG (argv, i, "mkfs");
|
|
|
|
--
|
|
1.7.11.5
|
|
|