datapath: Fix vport_get_stats() in !VPORT_F_GEN_STATS case.
authorBen Pfaff <blp@nicira.com>
Wed, 5 Jan 2011 18:17:17 +0000 (10:17 -0800)
committerBen Pfaff <blp@nicira.com>
Thu, 6 Jan 2011 04:46:42 +0000 (20:46 -0800)
When VPORT_F_GEN_STATS was not set, vport_get_stats() would always return
an error (either an error returned by ->get_stats(), otherwise
-EOPNOTSUPP).  This fixes the problem.

Found by inspection.

Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>
datapath/vport.c

index d7330f8..61f0e2a 100644 (file)
@@ -795,7 +795,7 @@ int vport_get_stats(struct vport *vport, struct rtnl_link_stats64 *stats)
 {
        struct rtnl_link_stats64 dev_stats;
        struct rtnl_link_stats64 *dev_statsp = NULL;
-       int err;
+       int err = 0;
 
        if (vport->ops->get_stats) {
                if (vport->ops->flags & VPORT_F_GEN_STATS)
@@ -871,10 +871,7 @@ int vport_get_stats(struct vport *vport, struct rtnl_link_stats64 *stats)
                        stats->tx_bytes         += local_stats.tx_bytes;
                        stats->tx_packets       += local_stats.tx_packets;
                }
-
-               err = 0;
-       } else
-               err = -EOPNOTSUPP;
+       }
 
 out:
        return err;