1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00

cache: lvconvert repairs only thin pools

Avoid internal error message where thin pool repair code tries to
fix cache pool - was catched later in code stack, so rather
catch this early and make the repair function exlusive
to thin pools.

So far we have no code for repairing cache pools
(other then the automatic during activation/deactivation).
This commit is contained in:
Zdenek Kabelac 2015-11-19 13:32:03 +01:00
parent d1608345df
commit 795616a87b
2 changed files with 10 additions and 4 deletions

View File

@ -1,5 +1,6 @@
Version 2.02.135 -
====================================
Show correct error message for unsupported yet cache pool repair.
Allow lvconvert cache pools' data and metadata LV to raid.
Fix reading of old metadata with missing cache policy or mode settings.
Issue error if external_device_info_source=udev and udev db record incomplete.

View File

@ -2320,9 +2320,9 @@ out:
return r;
}
static int _lvconvert_pool_repair(struct cmd_context *cmd,
struct logical_volume *pool_lv,
struct lvconvert_params *lp)
static int _lvconvert_thin_pool_repair(struct cmd_context *cmd,
struct logical_volume *pool_lv,
struct lvconvert_params *lp)
{
const char *dmdir = dm_dir();
const char *thin_dump =
@ -3270,7 +3270,12 @@ static int _lvconvert_single(struct cmd_context *cmd, struct logical_volume *lv,
if (arg_count(cmd, repair_ARG)) {
if (lv_is_pool(lv)) {
if (!_lvconvert_pool_repair(cmd, lv, lp))
if (lv_is_cache_pool(lv)) {
log_error("Repair for cache pool %s not yet implemented.",
display_lvname(lv));
return ECMD_FAILED;
}
if (!_lvconvert_thin_pool_repair(cmd, lv, lp))
return_ECMD_FAILED;
return ECMD_PROCESSED;
}