]> sourceware.org Git - lvm2.git/commitdiff
cleanup: improve tag processing
authorZdenek Kabelac <zkabelac@redhat.com>
Tue, 8 Nov 2011 22:29:40 +0000 (23:29 +0100)
committerZdenek Kabelac <zkabelac@redhat.com>
Thu, 12 Dec 2013 12:29:20 +0000 (13:29 +0100)
Boolean algebra changes for process_each_lv_in_vg().

1st.
Drop process_lv variable since it's not needed.

2nd.
process_lv was always initilized to 0 - so the condition was always true.
It the condition (!tags_supplied && !lvargs_supplied) evaluates as "true",
process_all is already set to 1, so skip vg tags evaluation.

3rd.
Move check for matching lv name in the front of lv tags check
since this check can't be skipped for lvargs_matched counter.
If this filter evaluates to true, skip lv tags evaluation.

WHATS_NEW
tools/toollib.c

index 0d6a9dfcf6cda797a55901932fee3661857643ea..4b469d4a73950b7156f87cac1f7332c86b644375 100644 (file)
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
 Version 2.02.105 -
 =====================================
+  Improve process_each_lv_in_vg() tag processing.
   Reodered and simplified logging code.
   Fix SYSTEMD_READY assignment for foreign devices in lvmetad udev rules.
   Disable online thin pool metadata resize for 1.9 kernel thin target.
index 65a708989541003de98dba82d48c87a13d6a517b..0429eb90c8a07aa90dd1269ea659eb2fda8a4a5a 100644 (file)
@@ -192,7 +192,6 @@ int process_each_lv_in_vg(struct cmd_context *cmd,
        int ret_max = ECMD_PROCESSED;
        int ret;
        unsigned process_all = 0;
-       unsigned process_lv = 0;
        unsigned tags_supplied = 0;
        unsigned lvargs_supplied = 0;
        unsigned lvargs_matched = 0;
@@ -211,12 +210,10 @@ int process_each_lv_in_vg(struct cmd_context *cmd,
        /* Process all LVs in this VG if no restrictions given */
        if (!tags_supplied && !lvargs_supplied)
                process_all = 1;
-
        /* Or if VG tags match */
-       if (!process_lv && tags_supplied &&
-           str_list_match_list(tags, &vg->tags, NULL)) {
+       else if (tags_supplied &&
+                str_list_match_list(tags, &vg->tags, NULL))
                process_all = 1;
-       }
 
        /*
         * FIXME: In case of remove it goes through deleted entries,
@@ -242,26 +239,15 @@ int process_each_lv_in_vg(struct cmd_context *cmd,
                if (!lvargs_supplied && !lv_is_visible(lvl->lv) && !arg_count(cmd, all_ARG))
                        continue;
 
-               /* Should we process this LV? */
-               if (process_all)
-                       process_lv = 1;
-               else
-                       process_lv = 0;
-
-               /* LV tag match? */
-               if (!process_lv && tags_supplied &&
-                   str_list_match_list(tags, &lvl->lv->tags, NULL)) {
-                       process_lv = 1;
-               }
-
                /* LV name match? */
                if (lvargs_supplied &&
-                   str_list_match_item(arg_lvnames, lvl->lv->name)) {
-                       process_lv = 1;
+                   str_list_match_item(arg_lvnames, lvl->lv->name))
+                       /* Check even when process_all for counter */
                        lvargs_matched++;
-               }
-
-               if (!process_lv)
+               /* LV tag match?   skip test, when process_all */
+               else if (!process_all &&
+                        (!tags_supplied ||
+                         !str_list_match_list(tags, &lvl->lv->tags, NULL)))
                        continue;
 
                if (sigint_caught())
This page took 0.04812 seconds and 5 git commands to generate.