summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Rajnoha <prajnoha@redhat.com>2015-07-02 16:05:25 +0200
committerPeter Rajnoha <prajnoha@redhat.com>2015-07-02 16:12:01 +0200
commita32d5a4afc5bdc4585132765fb02739a8f352e49 (patch)
tree0f8267ec9622a1eff58f2cfd8a085a6e8bca6a55
parenteaa0d927a4490c632b02a223cb426d7e483d9055 (diff)
downloadlvm2-a32d5a4afc5bdc4585132765fb02739a8f352e49.tar.gz
report: adjust shared flags based on expected type for reserved values
Generic numbers and time values share some operators so make sure we have the flags correctly adjusted based on expected type if we're using reserved values.
-rw-r--r--libdm/libdm-report.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libdm/libdm-report.c b/libdm/libdm-report.c
index 3f68a9e52..f8bd58188 100644
--- a/libdm/libdm-report.c
+++ b/libdm/libdm-report.c
@@ -2962,6 +2962,14 @@ static const char *_tok_value(struct dm_report *rh,
s = _get_reserved(rh, expected_type, field_num, implicit, s, begin, end, rvw);
if (rvw->reserved) {
+ /*
+ * FLD_CMP_NUMBER shares operators with FLD_CMP_TIME,
+ * so adjust flags here based on expected type.
+ */
+ if (expected_type == DM_REPORT_FIELD_TYPE_TIME)
+ *flags &= ~FLD_CMP_NUMBER;
+ else if (expected_type == DM_REPORT_FIELD_TYPE_NUMBER)
+ *flags &= ~FLD_CMP_TIME;
*flags |= expected_type;
return s;
}