[SCSI] libfc: release exchg cache
authorHillf Danton <dhillf@gmail.com>
Wed, 27 Jul 2011 22:10:34 +0000 (15:10 -0700)
committerJames Bottomley <JBottomley@Parallels.com>
Thu, 28 Jul 2011 08:10:13 +0000 (12:10 +0400)
If fail to create workqueue, the newly created cache for exchg has to be
released.

Signed-off-by: Hillf Danton <dhillf@gmail.com>
Reviewed-by: Vasu Dev <vasu.dev@intel.com>
Signed-off-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/libfc/fc_exch.c

index f5a0665b6773d1e0c2cec93dd4a251390817f8d6..7baf2239ce07ce0a7788dbe1dad95a530ad195e3 100644 (file)
@@ -2465,8 +2465,11 @@ int fc_setup_exch_mgr(void)
 
        fc_exch_workqueue = create_singlethread_workqueue("fc_exch_workqueue");
        if (!fc_exch_workqueue)
-               return -ENOMEM;
+               goto err;
        return 0;
+err:
+       kmem_cache_destroy(fc_em_cachep);
+       return -ENOMEM;
 }
 
 /**