diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2019-06-05 14:31:34 +0200 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2019-06-05 15:48:41 +0200 |
commit | e3c4ab0cc788b0190ab58446189c2d6b07a27b98 (patch) | |
tree | cf22baba14683aaa770557eccd8842564ca9e286 /libdm | |
parent | d18e491f6890e15a677e8189de0699ccc7412f16 (diff) | |
download | lvm2-e3c4ab0cc788b0190ab58446189c2d6b07a27b98.tar.gz |
cache: support no_discard_passdown
Recent kernel version from kernel commit:
de7180ff908b2bc0342e832dbdaa9a5f1ecaa33a
started to report in cache status line new flag:
no_discard_passdown
Whenever lvm spots unknown status it reports:
Unknown feature in status:
So add reconginzing this feature flag and also report this with
'lvs -o+kernel_discards'
When no_discard_passdown is found in status 'nopassdown' gets reported
for this field (roughly matching what we report for thin-pools).
Diffstat (limited to 'libdm')
-rw-r--r-- | libdm/libdevmapper.h | 1 | ||||
-rw-r--r-- | libdm/libdm-targets.c | 2 |
2 files changed, 3 insertions, 0 deletions
diff --git a/libdm/libdevmapper.h b/libdm/libdevmapper.h index 19032d775..e885f52ae 100644 --- a/libdm/libdevmapper.h +++ b/libdm/libdevmapper.h @@ -1893,6 +1893,7 @@ int dm_tree_node_add_raid_target_with_params_v2(struct dm_tree_node *node, #define DM_CACHE_FEATURE_WRITETHROUGH 0x00000002 #define DM_CACHE_FEATURE_PASSTHROUGH 0x00000004 #define DM_CACHE_FEATURE_METADATA2 0x00000008 /* cache v1.10 */ +#define DM_CACHE_FEATURE_NO_DISCARD_PASSDOWN 0x00000010 struct dm_config_node; /* diff --git a/libdm/libdm-targets.c b/libdm/libdm-targets.c index f2bac5177..164d51564 100644 --- a/libdm/libdm-targets.c +++ b/libdm/libdm-targets.c @@ -296,6 +296,8 @@ int dm_get_status_cache(struct dm_pool *mem, const char *params, s->feature_flags |= DM_CACHE_FEATURE_PASSTHROUGH; else if (!strncmp(p, "metadata2 ", 10)) s->feature_flags |= DM_CACHE_FEATURE_METADATA2; + else if (!strncmp(p, "no_discard_passdown ", 20)) + s->feature_flags |= DM_CACHE_FEATURE_NO_DISCARD_PASSDOWN; else log_error("Unknown feature in status: %s", params); |