[lustre-devel] [PATCH] lustre: ptlrpc: kfree used instead of kvfree
Dilger, Andreas
andreas.dilger at intel.com
Fri Sep 1 13:13:18 PDT 2017
On Aug 31, 2017, at 16:55, Nadav Amit <namit at vmware.com> wrote:
>
> rq_reqbuf is allocated using kvmalloc() but released in one occasion
> using kfree() instead of kvfree().
>
> The issue was found using grep based on a similar bug.
>
> Fixes: d7e09d0397e8 ("add Lustre file system client support")
It would appear that this bug was introduced by ee0ec1946ec2
"lustre: ptlrpc: Replace uses of OBD_{ALLOC,FREE}_LARGE", but
it looks like the problem predates this patch, since it was
originally using OBD_FREE() instead of OBD_FREE_LARGE() here
so the Coccinelle script wouldn't have caught the issue.
Reviewed-by: Andreas Dilger <andreas.dilger at intel.com>
>
> Cc: Peng Tao <bergwolf at gmail.com>
> Cc: Oleg Drokin <oleg.drokin at intel.com>
> Cc: Andreas Dilger <andreas.dilger at intel.com>
> Cc: James Simmons <jsimmons at infradead.org>
>
> Signed-off-by: Nadav Amit <namit at vmware.com>
> ---
> drivers/staging/lustre/lustre/ptlrpc/sec.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec.c b/drivers/staging/lustre/lustre/ptlrpc/sec.c
> index 366f2ce20f5e..2f1c9e15f47c 100644
> --- a/drivers/staging/lustre/lustre/ptlrpc/sec.c
> +++ b/drivers/staging/lustre/lustre/ptlrpc/sec.c
> @@ -847,7 +847,7 @@ void sptlrpc_request_out_callback(struct ptlrpc_request *req)
> if (req->rq_pool || !req->rq_reqbuf)
> return;
>
> - kfree(req->rq_reqbuf);
> + kvfree(req->rq_reqbuf);
> req->rq_reqbuf = NULL;
> req->rq_reqbuf_len = 0;
> }
> --
> 2.11.0
>
Cheers, Andreas
--
Andreas Dilger
Lustre Principal Architect
Intel Corporation
More information about the lustre-devel
mailing list