[CIFS] fix mempool destroy done in wrong order in cifs error path
Akinobu Mita [Mon, 4 Jun 2007 16:14:59 +0000 (16:14 +0000)]
Slab cache used as memory pool can not be destroyed before the memory
pool destruction. Because the memory pool still holds some objects and
kmem_cache_destroy() says "Can't free all objects".

Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>

fs/cifs/cifsfs.c

index d38c69b..7c04752 100644 (file)
@@ -825,8 +825,8 @@ cifs_init_mids(void)
                                sizeof (struct oplock_q_entry), 0,
                                SLAB_HWCACHE_ALIGN, NULL, NULL);
        if (cifs_oplock_cachep == NULL) {
-               kmem_cache_destroy(cifs_mid_cachep);
                mempool_destroy(cifs_mid_poolp);
+               kmem_cache_destroy(cifs_mid_cachep);
                return -ENOMEM;
        }