RDMA/cm: Set num_paths when manually assigning path records
authorSean Hefty <sean.hefty@intel.com>
Thu, 25 Mar 2010 19:12:36 +0000 (19:12 +0000)
committerRoland Dreier <rolandd@cisco.com>
Wed, 7 Apr 2010 21:13:22 +0000 (14:13 -0700)
When manually assigning the path records to use for a connection, save
the number of paths that were set.  Otherwise, checks against num_path
will show 0, even though path record data is available.

This was discovered by manually setting the path records from user
space, then querying the kernel to see if the correct path records
were assigned, only to discover that the kernel returned 0 path
records to the query.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/core/cma.c

index 875e34e..09b4b13 100644 (file)
@@ -1683,6 +1683,7 @@ int rdma_set_ib_paths(struct rdma_cm_id *id,
        }
 
        memcpy(id->route.path_rec, path_rec, sizeof *path_rec * num_paths);
+       id->route.num_paths = num_paths;
        return 0;
 err:
        cma_comp_exch(id_priv, CMA_ROUTE_RESOLVED, CMA_ADDR_RESOLVED);