Whamcloud - gitweb
LU-6480 o2iblnd: leak cmid in kiblnd_dev_need_failover 03/14603/2
authorLiang Zhen <liang.zhen@intel.com>
Mon, 27 Apr 2015 02:49:41 +0000 (10:49 +0800)
committerOleg Drokin <oleg.drokin@intel.com>
Wed, 26 Aug 2015 15:46:57 +0000 (15:46 +0000)
cmid created by kiblnd_dev_need_failover should always be destroyed,
however it is not the case in current implementation and we will leak
cmid when this function detected a device failover.

Signed-off-by: Liang Zhen <liang.zhen@intel.com>
Change-Id: Icc567593f50fd557d5a7d1642a65d4fe49e8b4c2
Reviewed-on: http://review.whamcloud.com/14603
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Isaac Huang <he.huang@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lnet/klnds/o2iblnd/o2iblnd.c

index 32c455b..c02b733 100644 (file)
@@ -2577,13 +2577,9 @@ kiblnd_dev_need_failover(kib_dev_t *dev)
                 return rc;
         }
 
-        if (dev->ibd_hdev->ibh_ibdev == cmid->device) {
-                /* don't need device failover */
-                rdma_destroy_id(cmid);
-                return 0;
-        }
-
-        return 1;
+       rc = dev->ibd_hdev->ibh_ibdev != cmid->device; /* true for failover */
+       rdma_destroy_id(cmid);
+       return rc;
 }
 
 int