From 1e421afa988195bead6650c421d9752fed32b73f Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 31 Aug 2013 22:48:04 +0100 Subject: [PATCH] rescue: Use cachemode "unsafe" for the virt-rescue --scratch option. (cherry picked from commit 3f0748f1fc64e42517c0d4535c27b1f32da86023) --- fish/options.c | 5 +++++ fish/options.h | 1 + rescue/virt-rescue.c | 1 + 3 files changed, 7 insertions(+) diff --git a/fish/options.c b/fish/options.c index 6d63afa..75d61ad 100644 --- a/fish/options.c +++ b/fish/options.c @@ -110,6 +110,10 @@ add_drives (struct drv *drv, char next_drive) ad_optargs.bitmask |= GUESTFS_ADD_DRIVE_OPTS_FORMAT_BITMASK; ad_optargs.format = drv->a.format; } + if (drv->a.cachemode) { + ad_optargs.bitmask |= GUESTFS_ADD_DRIVE_OPTS_CACHEMODE_BITMASK; + ad_optargs.cachemode = drv->a.cachemode; + } r = guestfs_add_drive_opts_argv (g, drv->a.filename, &ad_optargs); if (r == -1) @@ -254,6 +258,7 @@ free_drives (struct drv *drv) case drv_a: free (drv->a.filename); /* a.format is an optarg, so don't free it */ + /* a.cachemode is a static string, so don't free it */ break; case drv_uri: free (drv->uri.path); diff --git a/fish/options.h b/fish/options.h index 507ec1c..e2192b5 100644 --- a/fish/options.h +++ b/fish/options.h @@ -60,6 +60,7 @@ struct drv { struct { char *filename; /* disk filename */ const char *format; /* format (NULL == autodetect) */ + const char *cachemode;/* cachemode (NULL == default) */ } a; struct { char *path; /* disk path */ diff --git a/rescue/virt-rescue.c b/rescue/virt-rescue.c index 65dd473..942c54a 100644 --- a/rescue/virt-rescue.c +++ b/rescue/virt-rescue.c @@ -580,6 +580,7 @@ add_scratch_disk (struct drv **drvs) exit (EXIT_FAILURE); } drv->a.format = "raw"; + drv->a.cachemode = "unsafe"; /* because it's a scratch disk */ drv->next = *drvs; *drvs = drv; } -- 1.8.3.1