block/rnbd: Fix an IS_ERR() vs NULL check in find_or_create_sess()
authorDan Carpenter <dan.carpenter@oracle.com>
Tue, 19 May 2020 12:03:47 +0000 (15:03 +0300)
committerJason Gunthorpe <jgg@mellanox.com>
Fri, 22 May 2020 14:51:36 +0000 (11:51 -0300)
The alloc_sess() function returns error pointers, it never returns NULL.

Fixes: f7a7a5c228d4 ("block/rnbd: client: main functionality")
Link: https://lore.kernel.org/r/20200519120347.GD42765@mwanda
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Jack Wang <jinpu.wang@cloud.ionos.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/block/rnbd/rnbd-clt.c

index 450a571..cc6a4e2 100644 (file)
@@ -923,13 +923,12 @@ rnbd_clt_session *find_or_create_sess(const char *sessname, bool *first)
        sess = __find_and_get_sess(sessname);
        if (!sess) {
                sess = alloc_sess(sessname);
-               if (sess) {
-                       list_add(&sess->list, &sess_list);
-                       *first = true;
-               } else {
+               if (IS_ERR(sess)) {
                        mutex_unlock(&sess_lock);
-                       return ERR_PTR(-ENOMEM);
+                       return sess;
                }
+               list_add(&sess->list, &sess_list);
+               *first = true;
        } else
                *first = false;
        mutex_unlock(&sess_lock);