1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-02-24 17:57:48 +03:00

Prevent the user from simultaneously adding a mirror log while removing

a mirror image (or removing a log while adding a mirror).  Advise the
user to use two separate commands instead.

This issue become especially problematic when PVs are specified, as they
tend to mean different things when adding vs removing.  In a command that
mixes adding and removing, it is impossible to decern exactly what the
user wants.

This change prevents bug 603912.
This commit is contained in:
Jonathan Earl Brassow 2011-01-05 20:02:45 +00:00
parent 2d6e83ea19
commit 327dbf1078
2 changed files with 20 additions and 0 deletions

View File

@ -1,5 +1,6 @@
Version 2.02.80 -
====================================
Prevent adding/removing mirror log while removing/adding an image.
Add missing tests in _setup_task().
Fail poll daemon creation when lvmcache_init() fails.
Return defined value for errors in _copy_percent() and _snap_percent().

View File

@ -926,6 +926,25 @@ static int _lvconvert_mirrors_parse_params(struct cmd_context *cmd,
return 0;
}
/*
* Disallow adding logs while removing images or
* adding images while removing logs
*/
if ((*old_log_count < *new_log_count) &&
(*old_mimage_count > *new_mimage_count)) {
log_error("Mirror logs cannot be added while images are"
" being removed.");
log_error("Try two separate commands.");
return 0;
}
if ((*old_log_count > *new_log_count) &&
(*old_mimage_count < *new_mimage_count)) {
log_error("Mirror images cannot be added while logs are"
" being removed.");
log_error("Try two separate commands.");
return 0;
}
/*
* No mirrored logs for cluster mirrors until
* log daemon is multi-threaded.