struct ceph_buffer *old_blob = NULL;
        int used, dirty;
 
-       capsnap = kzalloc(sizeof(*capsnap), GFP_NOFS);
+       capsnap = kmem_cache_zalloc(ceph_cap_snap_cachep, GFP_NOFS);
        if (!capsnap) {
                pr_err("ENOMEM allocating ceph_cap_snap on %p\n", inode);
                return;
        spin_unlock(&ci->i_ceph_lock);
 
        ceph_buffer_put(old_blob);
-       kfree(capsnap);
+       if (capsnap)
+               kmem_cache_free(ceph_cap_snap_cachep, capsnap);
        ceph_put_snap_context(old_snapc);
 }
 
 
  */
 struct kmem_cache *ceph_inode_cachep;
 struct kmem_cache *ceph_cap_cachep;
+struct kmem_cache *ceph_cap_snap_cachep;
 struct kmem_cache *ceph_cap_flush_cachep;
 struct kmem_cache *ceph_dentry_cachep;
 struct kmem_cache *ceph_file_cachep;
        ceph_cap_cachep = KMEM_CACHE(ceph_cap, SLAB_MEM_SPREAD);
        if (!ceph_cap_cachep)
                goto bad_cap;
+       ceph_cap_snap_cachep = KMEM_CACHE(ceph_cap_snap, SLAB_MEM_SPREAD);
+       if (!ceph_cap_snap_cachep)
+               goto bad_cap_snap;
        ceph_cap_flush_cachep = KMEM_CACHE(ceph_cap_flush,
                                           SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD);
        if (!ceph_cap_flush_cachep)
 bad_dentry:
        kmem_cache_destroy(ceph_cap_flush_cachep);
 bad_cap_flush:
+       kmem_cache_destroy(ceph_cap_snap_cachep);
+bad_cap_snap:
        kmem_cache_destroy(ceph_cap_cachep);
 bad_cap:
        kmem_cache_destroy(ceph_inode_cachep);
 
        kmem_cache_destroy(ceph_inode_cachep);
        kmem_cache_destroy(ceph_cap_cachep);
+       kmem_cache_destroy(ceph_cap_snap_cachep);
        kmem_cache_destroy(ceph_cap_flush_cachep);
        kmem_cache_destroy(ceph_dentry_cachep);
        kmem_cache_destroy(ceph_file_cachep);
 
 
 extern struct kmem_cache *ceph_inode_cachep;
 extern struct kmem_cache *ceph_cap_cachep;
+extern struct kmem_cache *ceph_cap_snap_cachep;
 extern struct kmem_cache *ceph_cap_flush_cachep;
 extern struct kmem_cache *ceph_dentry_cachep;
 extern struct kmem_cache *ceph_file_cachep;