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>
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);