[CIFS] fix mempool destroy done in wrong order in cifs error path
authorAkinobu Mita <akinobu.mita@gmail..com>
Mon, 4 Jun 2007 16:14:59 +0000 (16:14 +0000)
committerSteve French <sfrench@us.ibm.com>
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 d38c69b591cfe0907d3d9e08bdb0da0380321709..7c04752b76cb88f1678e3f76cd4a2642a4a1a929 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;
        }