*/
struct lvconvert_params {
- /* Exactly one of these options is chosen */
+ /* Exactly one of these 12 command categories is determined */
int merge; /* Either merge_snapshot or merge_mirror is also set */
int cache;
- int corelog;
- int mirrorlog;
- int mirrors_supplied; /* When type_str is not set, this may be set with keep_mimages for --splitmirrors */
+ int keep_mimages; /* --splitmirrors */
int repair;
int replace;
int snapshot;
int splitsnapshot;
int thin;
int uncache;
+ int other_conversion; /* Everything else */
+
+ int corelog; /* Equivalent to --mirrorlog core */
+ int mirrorlog; /* Only one of corelog and mirrorlog may be set */
+
+ int mirrors_supplied; /* When type_str is not set, this may be set with keep_mimages for --splitmirrors */
const char *type_str; /* When this is set, mirrors_supplied may optionally also be set */
/* Holds what you asked for based on --type or other arguments, else "" */
uint32_t mirrors;
sign_t mirrors_sign;
- uint32_t keep_mimages; /* --splitmirrors */
uint32_t stripes;
uint32_t stripe_size;
uint32_t read_ahead;
lp->cache + lp->thin + lp->keep_mimages + lp->snapshot + lp->replace + lp->repair > 1) {
log_error(INTERNAL_ERROR "Unexpected combination of incompatible options selected.");
return 0;
- }
+ } else
+ lp->other_conversion = 1;
/*
* Final checking of each case: