diff --git a/WHATS_NEW b/WHATS_NEW index 2a4fdd545..4b3391351 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.152 - ================================== + Stop checking for dm_cache_mq policy with cache target 1.9 (alias to smq). Check first /sys/module/dm_* dir existance before using modprobe. Remove mpath from 10-dm.rules, superseded by 11-dm-mpath.rules (mpath>=0.6.0). diff --git a/lib/cache_segtype/cache.c b/lib/cache_segtype/cache.c index a65892e7f..be9a57eff 100644 --- a/lib/cache_segtype/cache.c +++ b/lib/cache_segtype/cache.c @@ -211,8 +211,9 @@ static int _target_present(struct cmd_context *cmd, const char feature[12]; const char module[12]; /* check dm-%s */ } _features[] = { - { 1, 3, CACHE_FEATURE_POLICY_MQ, "policy_mq", "cache-mq" }, + { 1, 9, CACHE_FEATURE_POLICY_SMQ | CACHE_FEATURE_POLICY_MQ, "policy_smq", "cache-smq" }, { 1, 8, CACHE_FEATURE_POLICY_SMQ, "policy_smq", "cache-smq" }, + { 1, 3, CACHE_FEATURE_POLICY_MQ, "policy_mq", "cache-mq" }, }; static const char _lvmconf[] = "global/cache_disabled_features"; static unsigned _attrs = 0; @@ -249,7 +250,9 @@ static int _target_present(struct cmd_context *cmd, for (i = 0; i < DM_ARRAY_SIZE(_features); ++i) { if (((maj > _features[i].maj) || (maj == _features[i].maj && min >= _features[i].min)) && - (!_features[i].module[0] || module_present(cmd, _features[i].module))) + (!_features[i].module[0] || + (_attrs & _features[i].cache_feature) || /* already present */ + module_present(cmd, _features[i].module))) _attrs |= _features[i].cache_feature; else log_very_verbose("Target %s does not support %s.",