psss / rpms / libguestfs

Forked from rpms/libguestfs 5 years ago
Clone

Blame 0005-rescue-Use-cachemode-unsafe-for-the-virt-rescue-scra.patch

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