On Tue, Nov 15, 2022 at 10:49 AM Haris Iqbal <haris.iqbal@xxxxxxxxx> wrote: > > On Sun, Nov 13, 2022 at 2:08 AM Guoqing Jiang <guoqing.jiang@xxxxxxxxx> wrote: > > > > The paths_num is only increased by rtrs_rdma_connect -> __alloc_path > > which is only one time thing, so is the decreasing of it given only > > rtrs_srv_close_work -> del_path_from_srv, which means paths_num should > > always be 1. > > It would actually go up to the number of paths a session will have in > a multipath setup. It is the exact counter part of paths_num in the > structure rtrs_clt_sess. But whereas on the client side, the number is > used to access the path list for making decisions in multipathing IO > like round-robin, etc. On the server side, I don't see the use of it. > Maybe just for sanity checks. > > @Jinpu Any thoughts? Yes, the idea is RTRS can have many paths, not only one, and you can add/remove path at run time, so not a one time thing. > > > > > Signed-off-by: Guoqing Jiang <guoqing.jiang@xxxxxxxxx> > > --- > > drivers/infiniband/ulp/rtrs/rtrs-srv.c | 8 -------- > > drivers/infiniband/ulp/rtrs/rtrs-srv.h | 1 - > > 2 files changed, 9 deletions(-) > > > > diff --git a/drivers/infiniband/ulp/rtrs/rtrs-srv.c b/drivers/infiniband/ulp/rtrs/rtrs-srv.c > > index e2ea09a8def7..400cf8ae34a3 100644 > > --- a/drivers/infiniband/ulp/rtrs/rtrs-srv.c > > +++ b/drivers/infiniband/ulp/rtrs/rtrs-srv.c > > @@ -1437,8 +1437,6 @@ static void __add_path_to_srv(struct rtrs_srv_sess *srv, > > struct rtrs_srv_path *srv_path) > > { > > list_add_tail(&srv_path->s.entry, &srv->paths_list); > > - srv->paths_num++; > > - WARN_ON(srv->paths_num >= MAX_PATHS_NUM); > > } > > > > static void del_path_from_srv(struct rtrs_srv_path *srv_path) > > @@ -1450,8 +1448,6 @@ static void del_path_from_srv(struct rtrs_srv_path *srv_path) > > > > mutex_lock(&srv->paths_mutex); > > list_del(&srv_path->s.entry); > > - WARN_ON(!srv->paths_num); > > - srv->paths_num--; > > mutex_unlock(&srv->paths_mutex); > > } > > > > @@ -1719,10 +1715,6 @@ static struct rtrs_srv_path *__alloc_path(struct rtrs_srv_sess *srv, > > char str[NAME_MAX]; > > struct rtrs_addr path; > > > > - if (srv->paths_num >= MAX_PATHS_NUM) { > > - err = -ECONNRESET; > > - goto err; > > - } > > if (__is_path_w_addr_exists(srv, &cm_id->route.addr)) { > > err = -EEXIST; > > pr_err("Path with same addr exists\n"); > > diff --git a/drivers/infiniband/ulp/rtrs/rtrs-srv.h b/drivers/infiniband/ulp/rtrs/rtrs-srv.h > > index eccc432b0715..8e4fcb578f49 100644 > > --- a/drivers/infiniband/ulp/rtrs/rtrs-srv.h > > +++ b/drivers/infiniband/ulp/rtrs/rtrs-srv.h > > @@ -100,7 +100,6 @@ struct rtrs_srv_sess { > > struct list_head paths_list; > > int paths_up; > > struct mutex paths_ev_mutex; > > - size_t paths_num; > > struct mutex paths_mutex; > > uuid_t paths_uuid; > > refcount_t refcount; > > -- > > 2.31.1 > >