[SCSI] libfc: release exchg cache
authorHillf Danton <[email protected]>
Wed, 27 Jul 2011 22:10:34 +0000 (15:10 -0700)
committerJames Bottomley <[email protected]>
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 <[email protected]>
Reviewed-by: Vasu Dev <[email protected]>
Signed-off-by: Robert Love <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
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;
 }
 
 /**