From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sasha Levin Subject: [PATCH 1/2] kvm tools: Fix rootfs name resolving when specified with image Date: Thu, 15 Dec 2011 14:15:10 +0200 Message-ID: <1323951311-16155-1-git-send-email-levinsasha928@gmail.com> Cc: mingo@elte.hu, gorcunov@gmail.com, asias.hejun@gmail.com, kvm@vger.kernel.org, Sasha Levin To: penberg@kernel.org Return-path: Received: from mail-fx0-f46.google.com ([209.85.161.46]:62654 "EHLO mail-fx0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755662Ab1LOMPW (ORCPT ); Thu, 15 Dec 2011 07:15:22 -0500 Received: by faar15 with SMTP id r15so2099424faa.19 for ; Thu, 15 Dec 2011 04:15:21 -0800 (PST) Sender: kvm-owner@vger.kernel.org List-ID: Fix the case when using a rootfs combined with a virtio-blk disk. Also, simplify custon rootfs name lookup. Signed-off-by: Sasha Levin --- tools/kvm/builtin-run.c | 18 ++++++------------ 1 files changed, 6 insertions(+), 12 deletions(-) diff --git a/tools/kvm/builtin-run.c b/tools/kvm/builtin-run.c index 0879ab9..e6751aa 100644 --- a/tools/kvm/builtin-run.c +++ b/tools/kvm/builtin-run.c @@ -87,6 +87,7 @@ static const char *script; static const char *guest_name; static const char *sandbox; static const char *hugetlbfs_path; +static const char *custom_rootfs_name = "default"; static struct virtio_net_params *net_params; static bool single_step; static bool readonly_image[MAX_DISK_IMAGES]; @@ -151,6 +152,7 @@ static int img_name_parser(const struct option *opt, const char *arg, int unset) die("Unable to initialize virtio 9p"); kvm_setup_resolv(arg); using_rootfs = custom_rootfs = 1; + custom_rootfs_name = arg; return 0; } @@ -738,18 +740,13 @@ void kvm_run_help(void) static int kvm_custom_stage2(void) { char tmp[PATH_MAX], dst[PATH_MAX], *src; - const char *rootfs; + const char *rootfs = custom_rootfs_name; int r; src = realpath("guest/init_stage2", NULL); if (src == NULL) return -ENOMEM; - if (image_filename[0] == NULL) - rootfs = "default"; - else - rootfs = image_filename[0]; - snprintf(tmp, PATH_MAX, "%s%s/virt/init_stage2", kvm__get_dir(), rootfs); remove(tmp); @@ -762,12 +759,9 @@ static int kvm_custom_stage2(void) static int kvm_run_set_sandbox(void) { - const char *guestfs_name = "default"; + const char *guestfs_name = custom_rootfs_name; char path[PATH_MAX], script[PATH_MAX], *tmp; - if (image_filename[0]) - guestfs_name = image_filename[0]; - snprintf(path, PATH_MAX, "%s%s/virt/sandbox.sh", kvm__get_dir(), guestfs_name); remove(path); @@ -976,8 +970,8 @@ int kvm_cmd_run(int argc, const char **argv, const char *prefix) if (!using_rootfs && !image_filename[0]) { char tmp[PATH_MAX]; - kvm_setup_create_new("default"); - kvm_setup_resolv("default"); + kvm_setup_create_new(custom_rootfs_name); + kvm_setup_resolv(custom_rootfs_name); snprintf(tmp, PATH_MAX, "%s%s", kvm__get_dir(), "default"); if (virtio_9p__register(kvm, tmp, "/dev/root") < 0) -- 1.7.8