Beispiel #1
0
static int
dm_groupmsg (char * msg, char * mapname, int index)
{
	char message[32];

	if (snprintf(message, 32, "%s_group %i", msg, index) > 32)
		return 1;

	return dm_message(mapname, message);
}
Beispiel #2
0
int
dm_reinstate_path(char * mapname, char * path)
{
	char message[32];

	if (snprintf(message, 32, "reinstate_path %s", path) > 32)
		return 1;

	return dm_message(mapname, message);
}
Beispiel #3
0
static int
cancel_remove_partmap (const char *name, void *unused)
{
	if (dm_get_opencount(name))
		dm_cancel_remove_partmaps(name);
	if (dm_message(name, "@cancel_deferred_remove") != 0)
		condlog(0, "%s: can't cancel deferred remove: %s", name,
			strerror(errno));
	return 0;
}
Beispiel #4
0
int
dm_queue_if_no_path(char *mapname, int enable)
{
	char *message;

	if (enable)
		message = "queue_if_no_path";
	else
		message = "fail_if_no_path";

	return dm_message(mapname, message);
}
Beispiel #5
0
Datei: dm.c Projekt: radii/dmsteg
int dm_bunnypair(char *path, u8 *old_output, u8 *seed, u8 *output)
{
	int e;
	char *msg = steg_malloc(512);
	strcpy(msg, "bunnypair ");
	sprint_hex(msg + strlen(msg), old_output, BUNNY_ENTRY_BYTES);
	strcat(msg, " ");
	sprint_hex(msg + strlen(msg), seed, BUNNY_ENTRY_BYTES);
	strcat(msg, " ");
	sprint_hex(msg + strlen(msg), output, BUNNY_ENTRY_BYTES);
	e = dm_message(path, msg);
	steg_free(msg);
	return e;
}
Beispiel #6
0
int
dm_cancel_deferred_remove (struct multipath *mpp)
{
	int r = 0;

	if (!dm_get_deferred_remove(mpp->alias))
		return 0;
	if (mpp->deferred_remove == DEFERRED_REMOVE_IN_PROGRESS)
		mpp->deferred_remove = DEFERRED_REMOVE_ON;

	dm_cancel_remove_partmaps(mpp->alias);
	r = dm_message(mpp->alias, "@cancel_deferred_remove");
	if (r)
		condlog(0, "%s: can't cancel deferred remove: %s", mpp->alias,
				strerror(errno));
	else
		condlog(2, "%s: canceled deferred remove", mpp->alias);
	return r;
}