From 3f6a54c1a7dc8d21264f58298cfa61814e45de56 Mon Sep 17 00:00:00 2001 From: Li Feng Date: Fri, 31 Aug 2018 21:39:27 +0800 Subject: [PATCH] bdev/rbd: fix memory leak and spdk_io_device_register fail io_device is registered, but never release. It will lead spdk_io_device_register to fail because allocate new io_device may reuse the same memory address. Change-Id: I3359ed783c1df43ef382669d9d73d06bfbc1fe2d Signed-off-by: Li Feng Reviewed-on: https://review.gerrithub.io/424235 Reviewed-by: Jim Harris Reviewed-by: GangCao Reviewed-by: Shuhei Matsumoto Chandler-Test-Pool: SPDK Automated Test System Tested-by: SPDK CI Jenkins --- lib/bdev/rbd/bdev_rbd.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/bdev/rbd/bdev_rbd.c b/lib/bdev/rbd/bdev_rbd.c index 4904d4da2..f85778b16 100644 --- a/lib/bdev/rbd/bdev_rbd.c +++ b/lib/bdev/rbd/bdev_rbd.c @@ -312,6 +312,8 @@ bdev_rbd_destruct(void *ctx) { struct bdev_rbd *rbd = ctx; + spdk_io_device_unregister(rbd, NULL); + bdev_rbd_free(rbd); return 0; }