break;
case ACT_RELOAD:
- r = (dm_addmap_reload(mpp->alias, mpp->params, mpp->size, NULL)
- && dm_simplecmd_flush(DM_DEVICE_RESUME, mpp->alias));
+ r = dm_addmap_reload(mpp->alias, mpp->params, mpp->size, NULL);
+ if (!r)
+ r = dm_addmap_reload_ro(mpp->alias, mpp->params, mpp->size, NULL);
+ if (r)
+ r = dm_simplecmd_noflush(DM_DEVICE_RESUME, mpp->alias);
break;
case ACT_RESIZE:
- r = dm_addmap_reload_ro(mpp->alias, mpp->params, mpp->size, NULL);
+ r = dm_addmap_reload(mpp->alias, mpp->params, mpp->size, NULL);
if (!r)
- r = dm_addmap_reload(mpp->alias, mpp->params, mpp->size, NULL);
+ r = dm_addmap_reload_ro(mpp->alias, mpp->params, mpp->size, NULL);
if (r)
- r = dm_simplecmd_noflush(DM_DEVICE_RESUME, mpp->alias);
+ r = dm_simplecmd_flush(DM_DEVICE_RESUME, mpp->alias);
break;
case ACT_RENAME:
extern int
dm_simplecmd_flush (int task, const char *name) {
- return dm_simplecmd(task, name, 1);
+ return dm_simplecmd(task, name, 0);
}
extern int
dm_simplecmd_noflush (int task, const char *name) {
- return dm_simplecmd(task, name, 0);
+ return dm_simplecmd(task, name, 1);
}
extern int
if (ro)
dm_task_set_ro(dmt);
- if (ro)
- dm_task_set_ro(dmt);
-
if (uuid){
prefixed_uuid = MALLOC(UUID_PREFIX_LEN + strlen(uuid) + 1);
if (!prefixed_uuid) {
return 1;
}
- r = dm_simplecmd_noflush(DM_DEVICE_REMOVE, mapname);
+ r = dm_simplecmd_flush(DM_DEVICE_REMOVE, mapname);
if (r) {
condlog(4, "multipath map %s removed", mapname);
*/
condlog(4, "partition map %s removed",
names->name);
- dm_simplecmd_noflush(DM_DEVICE_REMOVE, names->name);
+ dm_simplecmd_flush(DM_DEVICE_REMOVE, names->name);
}
next = names->next;
pgp = VECTOR_SLOT(mpp->pg, 0);
pp = VECTOR_SLOT(pgp->paths, 0);
- condlog(0,"%s: reading sysfs.", mapname);
if (sysfs_get_size(pp->sysdev, &size)) {
condlog(0, "%s: couldn't get size for sysfs. cannot resize",
mapname);
condlog(3, "%s old size is %llu, new size is %llu", mapname, mpp->size,
size);
- condlog(0, "%s: resize_map.", mapname);
if (resize_map(mpp, size, vecs) != 0)
return 1;
- condlog(0,"%s: dm_lib_release.", mapname);
dm_lib_release();
- condlog(0,"%s: setup multipath.", mapname);
setup_multipath(vecs, mpp);
- condlog(0,"%s: sync map state.", mapname);
sync_map_state(mpp);
return 0;
{
struct vectors * vecs = (struct vectors *)data;
char * param = get_keyparam(v, MAP);
- int r = dm_simplecmd_flush(DM_DEVICE_SUSPEND, param);
+ int r = dm_simplecmd_noflush(DM_DEVICE_SUSPEND, param);
condlog(2, "%s: suspend (operator)", param);
{
struct vectors * vecs = (struct vectors *)data;
char * param = get_keyparam(v, MAP);
- int r = dm_simplecmd_flush(DM_DEVICE_RESUME, param);
+ int r = dm_simplecmd_noflush(DM_DEVICE_RESUME, param);
condlog(2, "%s: resume (operator)", param);