Add a debug-style nvram parameter to disallow the use of device-mapper
snapshots.
Signed-off-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com>
#include "libdevmapper.h"
#include "devmapper.h"
#include "libdevmapper.h"
#include "devmapper.h"
#define MERGE_INTERVAL_US 200000
#define MERGE_INTERVAL_US 200000
{
struct ramdisk_device *ramdisk;
{
struct ramdisk_device *ramdisk;
+ if (config_get()->disable_snapshots)
+ return 0;
+
ramdisk = device_handler_get_ramdisk(handler);
if (!ramdisk) {
pb_log("No ramdisk available for snapshot %s\n",
ramdisk = device_handler_get_ramdisk(handler);
if (!ramdisk) {
pb_log("No ramdisk available for snapshot %s\n",
"petitboot,language",
"petitboot,debug?",
"petitboot,write?",
"petitboot,language",
"petitboot,debug?",
"petitboot,write?",
+ "petitboot,snapshots?",
val = get_param(platform, "petitboot,write?");
if (val)
config->allow_writes = !strcmp(val, "true");
val = get_param(platform, "petitboot,write?");
if (val)
config->allow_writes = !strcmp(val, "true");
+
+ val = get_param(platform, "petitboot,snapshots?");
+ if (val)
+ config->disable_snapshots = !strcmp(val, "false");
}
static char *iface_config_str(void *ctx, struct interface_config *config)
}
static char *iface_config_str(void *ctx, struct interface_config *config)
if (config->safe_mode)
pb_log(" safe mode: active\n");
if (config->safe_mode)
pb_log(" safe mode: active\n");
+ if (config->disable_snapshots)
+ pb_log(" dm-snapshots disabled\n");
+
for (i = 0; i < config->network.n_interfaces; i++) {
struct interface_config *ifconf =
config->network.interfaces[i];
for (i = 0; i < config->network.n_interfaces; i++) {
struct interface_config *ifconf =
config->network.interfaces[i];
config->safe_mode = false;
config->lang = NULL;
config->allow_writes = true;
config->safe_mode = false;
config->lang = NULL;
config->allow_writes = true;
+ config->disable_snapshots = false;
config->n_autoboot_opts = 2;
config->autoboot_opts = talloc_array(config, struct autoboot_option,
config->n_autoboot_opts = 2;
config->autoboot_opts = talloc_array(config, struct autoboot_option,
char *lang;
/* not user-settable */
char *lang;
/* not user-settable */
+ bool disable_snapshots;
bool safe_mode;
bool debug;
};
bool safe_mode;
bool debug;
};
config->safe_mode ? "enabled" : "disabled");
print_one_config(ctx, var, "debug", "%s",
config->debug ? "enabled" : "disabled");
config->safe_mode ? "enabled" : "disabled");
print_one_config(ctx, var, "debug", "%s",
config->debug ? "enabled" : "disabled");
+ print_one_config(ctx, var, "dm-snapshots", "%s",
+ config->disable_snapshots ? "disabled" : "enabled");
}
int main(int argc, char **argv)
}
int main(int argc, char **argv)