multipath: display average priority as group priority
authorNikanth Karthikesan <knikanth@suse.de>
Wed, 17 Mar 2010 07:14:25 +0000 (12:44 +0530)
committerChristophe Varoqui <christophe.varoqui@free.fr>
Wed, 17 Mar 2010 21:47:38 +0000 (22:47 +0100)
Display avg priority as group priority

Now average priority is used as path group priority, instead of sum of
priorities of the paths. But while displaying group priority, sum is
being displayed. Change it to print the average priority.

When there are no enabled paths, print 0 as priority.

Signed-off-by: Nikanth Karthikesan <knikanth@suse.de>
libmultipath/print.c

index 10e5ce5..9753fe2 100644 (file)
@@ -378,6 +378,7 @@ snprint_pg_selector (char * buff, size_t len, struct pathgroup * pgp)
 static int
 snprint_pg_pri (char * buff, size_t len, struct pathgroup * pgp)
 {
+       int avg_priority = 0;
        /*
         * path group priority is not updated for every path prio change,
         * but only on switch group code path.
@@ -385,7 +386,9 @@ snprint_pg_pri (char * buff, size_t len, struct pathgroup * pgp)
         * Printing is another reason to update.
         */
        path_group_prio_update(pgp);
-       return snprint_int(buff, len, pgp->priority);
+       if (pgp->enabled_paths)
+               avg_priority = pgp->priority / pgp->enabled_paths;
+       return snprint_int(buff, len, avg_priority);
 }
 
 static int