RDMA/rtrs-clt: Refactor the failure cases in alloc_clt
authorGuoqing Jiang <guoqing.jiang@cloud.ionos.com>
Thu, 17 Dec 2020 14:19:10 +0000 (15:19 +0100)
committerJason Gunthorpe <jgg@nvidia.com>
Fri, 15 Jan 2021 19:25:09 +0000 (15:25 -0400)
commiteab098246625e91c1cbd6e8f75b09e4c9c28a9fc
tree405abc47e52ef1379cdc764b9715aba52ff82000
parent8537f2de6519945890a2b0f3739b23f32b5c0a89
RDMA/rtrs-clt: Refactor the failure cases in alloc_clt

Make all failure cases go to the common path to avoid duplicate code.
And some issued existed before.

1. clt need to be freed to avoid memory leak.

2. return ERR_PTR(-ENOMEM) if kobject_create_and_add fails, because
   rtrs_clt_open checks the return value of by call "IS_ERR(clt)".

Fixes: 6a98d71daea1 ("RDMA/rtrs: client: main functionality")
Link: https://lore.kernel.org/r/20201217141915.56989-15-jinpu.wang@cloud.ionos.com
Signed-off-by: Guoqing Jiang <guoqing.jiang@cloud.ionos.com>
Reviewed-by: Md Haris Iqbal <haris.iqbal@cloud.ionos.com>
Signed-off-by: Jack Wang <jinpu.wang@cloud.ionos.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/ulp/rtrs/rtrs-clt.c