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); }
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); }
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; }
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); }
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; }
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; }