Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ec5b4ca3 authored by Zhang Xiaoxu's avatar Zhang Xiaoxu Committed by Greg Kroah-Hartman
Browse files

xprtrdma: Fix regbuf data not freed in rpcrdma_req_create()



commit 9181f40fb2952fd59ecb75e7158620c9c669eee3 upstream.

If rdma receive buffer allocate failed, should call rpcrdma_regbuf_free()
to free the send buffer, otherwise, the buffer data will be leaked.

Fixes: bb93a1ae ("xprtrdma: Allocate req's regbufs at xprt create time")
Signed-off-by: default avatarZhang Xiaoxu <zhangxiaoxu5@huawei.com>
Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
[Harshit: Backport to 5.4.y]
Also make the same change for 'req->rl_rdmabuf' at the same time as
this will also have the same memory leak problem as 'req->rl_sendbuf'
(This is because commit b78de1dca00376aaba7a58bb5fe21c1606524abe is not
in 5.4.y)
Signed-off-by: default avatarHarshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 5af2f74f
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1034,9 +1034,9 @@ struct rpcrdma_req *rpcrdma_req_create(struct rpcrdma_xprt *r_xprt, size_t size,
	return req;

out4:
	kfree(req->rl_sendbuf);
	rpcrdma_regbuf_free(req->rl_sendbuf);
out3:
	kfree(req->rl_rdmabuf);
	rpcrdma_regbuf_free(req->rl_rdmabuf);
out2:
	kfree(req);
out1: