mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +03:00
lvconvert: thin errorwhenfull and recalculation
When converting an existing LV to thin-pool, user may now pass also '--errorwhenfull' option like with 'lvcreate'. Also recalculate chunksize when performace profile is used with conversion (again matching lvcreate). Adds missing flagging for uncropped metadata sizes.
This commit is contained in:
parent
6a1e8104f8
commit
7b51f39c84
@ -309,6 +309,8 @@ OO_LVCONVERT_POOL: --poolmetadata LV, --poolmetadatasize SizeMB,
|
||||
--poolmetadataspare Bool, --readahead Readahead, --chunksize SizeKB,
|
||||
--zero Bool, --metadataprofile String
|
||||
|
||||
OO_LVCONVERT_THIN: --discards Discards --errorwhenfull Bool
|
||||
|
||||
OO_LVCONVERT_CACHE: --cachemetadataformat CacheMetadataFormat,
|
||||
--cachemode CacheMode, --cachepolicy String,
|
||||
--cachesettings String, --zero Bool
|
||||
@ -461,7 +463,7 @@ FLAGS: SECONDARY_SYNTAX
|
||||
|
||||
lvconvert --type thin-pool LV_linear_striped_raid_cache
|
||||
OO: --stripes_long Number, --stripesize SizeKB,
|
||||
--discards Discards, OO_LVCONVERT_POOL, OO_LVCONVERT
|
||||
OO_LVCONVERT_THIN, OO_LVCONVERT_POOL, OO_LVCONVERT
|
||||
OP: PV ...
|
||||
ID: lvconvert_to_thinpool
|
||||
DESC: Convert LV to type thin-pool.
|
||||
@ -493,7 +495,7 @@ RULE: --poolmetadata not --readahead --stripesize --stripes_long
|
||||
|
||||
lvconvert --thinpool LV_linear_striped_raid_cache_thinpool
|
||||
OO: --type thin-pool, --stripes_long Number, --stripesize SizeKB,
|
||||
--discards Discards, OO_LVCONVERT_POOL, OO_LVCONVERT
|
||||
OO_LVCONVERT_THIN, OO_LVCONVERT_POOL, OO_LVCONVERT
|
||||
OP: PV ...
|
||||
ID: lvconvert_to_thinpool_or_swap_metadata
|
||||
DESC: Convert LV to type thin-pool (variant, use --type thin-pool).
|
||||
|
@ -2940,6 +2940,7 @@ static int _lvconvert_to_pool(struct cmd_context *cmd,
|
||||
thin_crop_metadata_t crop_metadata;
|
||||
thin_discards_t discards;
|
||||
thin_zero_t zero_new_blocks;
|
||||
int error_when_full;
|
||||
int r = 0;
|
||||
|
||||
/* for handling lvmlockd cases */
|
||||
@ -3313,6 +3314,18 @@ static int _lvconvert_to_pool(struct cmd_context *cmd,
|
||||
seg->chunk_size = chunk_size;
|
||||
seg->discards = discards;
|
||||
seg->zero_new_blocks = zero_new_blocks;
|
||||
if (crop_metadata == THIN_CROP_METADATA_NO)
|
||||
pool_lv->status |= LV_CROP_METADATA;
|
||||
if (!recalculate_pool_chunk_size_with_dev_hints(pool_lv, chunk_calc))
|
||||
goto_bad;
|
||||
|
||||
/* Error when full */
|
||||
if (arg_is_set(cmd, errorwhenfull_ARG))
|
||||
error_when_full = arg_uint_value(cmd, errorwhenfull_ARG, 0);
|
||||
else
|
||||
error_when_full = find_config_tree_bool(cmd, activation_error_when_full_CFG, vg->profile);
|
||||
if (error_when_full)
|
||||
pool_lv->status |= LV_ERROR_WHEN_FULL;
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user