From: Alexey Dobriyan * Rougly half of callers already do it by not checking return value * Code in drivers/acpi/osl.c does the following to be sure: (void)kmem_cache_destroy(cache); * Those who check it printk something, however, slab_error already printed the name of failed cache. * XFS BUGs on failed kmem_cache_destroy which is not the decision low-level filesystem driver should make. Converted to ignore. Signed-off-by: Alexey Dobriyan Signed-off-by: Andrew Morton --- drivers/acpi/osl.c | 2 +- drivers/infiniband/core/mad.c | 5 +---- drivers/usb/host/uhci-hcd.c | 8 ++------ fs/adfs/super.c | 3 +-- fs/affs/super.c | 3 +-- fs/befs/linuxvfs.c | 4 +--- fs/bfs/inode.c | 3 +-- fs/cifs/cifsfs.c | 20 +++++--------------- fs/coda/inode.c | 3 +-- fs/efs/super.c | 3 +-- fs/ext2/super.c | 3 +-- fs/ext3/super.c | 3 +-- fs/fat/cache.c | 3 +-- fs/fat/inode.c | 3 +-- fs/hfs/super.c | 3 +-- fs/hfsplus/super.c | 3 +-- fs/hpfs/super.c | 3 +-- fs/isofs/inode.c | 4 +--- fs/minix/inode.c | 3 +-- fs/ncpfs/inode.c | 3 +-- fs/nfs/direct.c | 3 +-- fs/nfs/inode.c | 3 +-- fs/nfs/pagelist.c | 3 +-- fs/nfs/read.c | 3 +-- fs/nfs/write.c | 3 +-- fs/nfsd/nfs4state.c | 5 +---- fs/ntfs/super.c | 28 +++++----------------------- fs/ocfs2/dlm/dlmfs.c | 4 +--- fs/qnx4/inode.c | 4 +--- fs/reiserfs/super.c | 4 +--- fs/romfs/inode.c | 3 +-- fs/smbfs/inode.c | 3 +-- fs/smbfs/request.c | 3 +-- fs/udf/super.c | 3 +-- fs/ufs/super.c | 3 +-- fs/xfs/linux-2.6/kmem.h | 4 ++-- ipc/mqueue.c | 5 +---- mm/shmem.c | 3 +-- net/sunrpc/rpc_pipe.c | 3 +-- net/sunrpc/sched.c | 8 ++++---- 40 files changed, 53 insertions(+), 130 deletions(-) diff -puN drivers/acpi/osl.c~really-ignore-kmem_cache_destroy-return-value drivers/acpi/osl.c --- a/drivers/acpi/osl.c~really-ignore-kmem_cache_destroy-return-value +++ a/drivers/acpi/osl.c @@ -1079,7 +1079,7 @@ acpi_status acpi_os_purge_cache(acpi_cac acpi_status acpi_os_delete_cache(acpi_cache_t * cache) { - (void)kmem_cache_destroy(cache); + kmem_cache_destroy(cache); return (AE_OK); } diff -puN drivers/infiniband/core/mad.c~really-ignore-kmem_cache_destroy-return-value drivers/infiniband/core/mad.c --- a/drivers/infiniband/core/mad.c~really-ignore-kmem_cache_destroy-return-value +++ a/drivers/infiniband/core/mad.c @@ -2987,10 +2987,7 @@ error1: static void __exit ib_mad_cleanup_module(void) { ib_unregister_client(&mad_client); - - if (kmem_cache_destroy(ib_mad_cache)) { - printk(KERN_DEBUG PFX "Failed to destroy ib_mad cache\n"); - } + kmem_cache_destroy(ib_mad_cache); } module_init(ib_mad_init_module); diff -puN drivers/usb/host/uhci-hcd.c~really-ignore-kmem_cache_destroy-return-value drivers/usb/host/uhci-hcd.c --- a/drivers/usb/host/uhci-hcd.c~really-ignore-kmem_cache_destroy-return-value +++ a/drivers/usb/host/uhci-hcd.c @@ -913,8 +913,7 @@ static int __init uhci_hcd_init(void) return 0; init_failed: - if (kmem_cache_destroy(uhci_up_cachep)) - warn("not all urb_privs were freed!"); + kmem_cache_destroy(uhci_up_cachep); up_failed: debugfs_remove(uhci_debugfs_root); @@ -930,10 +929,7 @@ errbuf_failed: static void __exit uhci_hcd_cleanup(void) { pci_unregister_driver(&uhci_pci_driver); - - if (kmem_cache_destroy(uhci_up_cachep)) - warn("not all urb_privs were freed!"); - + kmem_cache_destroy(uhci_up_cachep); debugfs_remove(uhci_debugfs_root); kfree(errbuf); } diff -puN fs/adfs/super.c~really-ignore-kmem_cache_destroy-return-value fs/adfs/super.c --- a/fs/adfs/super.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/adfs/super.c @@ -251,8 +251,7 @@ static int init_inodecache(void) static void destroy_inodecache(void) { - if (kmem_cache_destroy(adfs_inode_cachep)) - printk(KERN_INFO "adfs_inode_cache: not all structures were freed\n"); + kmem_cache_destroy(adfs_inode_cachep); } static struct super_operations adfs_sops = { diff -puN fs/affs/super.c~really-ignore-kmem_cache_destroy-return-value fs/affs/super.c --- a/fs/affs/super.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/affs/super.c @@ -109,8 +109,7 @@ static int init_inodecache(void) static void destroy_inodecache(void) { - if (kmem_cache_destroy(affs_inode_cachep)) - printk(KERN_INFO "affs_inode_cache: not all structures were freed\n"); + kmem_cache_destroy(affs_inode_cachep); } static struct super_operations affs_sops = { diff -puN fs/befs/linuxvfs.c~really-ignore-kmem_cache_destroy-return-value fs/befs/linuxvfs.c --- a/fs/befs/linuxvfs.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/befs/linuxvfs.c @@ -445,9 +445,7 @@ befs_init_inodecache(void) static void befs_destroy_inodecache(void) { - if (kmem_cache_destroy(befs_inode_cachep)) - printk(KERN_ERR "befs_destroy_inodecache: " - "not all structures were freed\n"); + kmem_cache_destroy(befs_inode_cachep); } /* diff -puN fs/bfs/inode.c~really-ignore-kmem_cache_destroy-return-value fs/bfs/inode.c --- a/fs/bfs/inode.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/bfs/inode.c @@ -267,8 +267,7 @@ static int init_inodecache(void) static void destroy_inodecache(void) { - if (kmem_cache_destroy(bfs_inode_cachep)) - printk(KERN_INFO "bfs_inode_cache: not all structures were freed\n"); + kmem_cache_destroy(bfs_inode_cachep); } static struct super_operations bfs_sops = { diff -puN fs/cifs/cifsfs.c~really-ignore-kmem_cache_destroy-return-value fs/cifs/cifsfs.c --- a/fs/cifs/cifsfs.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/cifs/cifsfs.c @@ -700,8 +700,7 @@ cifs_init_inodecache(void) static void cifs_destroy_inodecache(void) { - if (kmem_cache_destroy(cifs_inode_cachep)) - printk(KERN_WARNING "cifs_inode_cache: error freeing\n"); + kmem_cache_destroy(cifs_inode_cachep); } static int @@ -779,13 +778,9 @@ static void cifs_destroy_request_bufs(void) { mempool_destroy(cifs_req_poolp); - if (kmem_cache_destroy(cifs_req_cachep)) - printk(KERN_WARNING - "cifs_destroy_request_cache: error not all structures were freed\n"); + kmem_cache_destroy(cifs_req_cachep); mempool_destroy(cifs_sm_req_poolp); - if (kmem_cache_destroy(cifs_sm_req_cachep)) - printk(KERN_WARNING - "cifs_destroy_request_cache: cifs_small_rq free error\n"); + kmem_cache_destroy(cifs_sm_req_cachep); } static int @@ -820,13 +815,8 @@ static void cifs_destroy_mids(void) { mempool_destroy(cifs_mid_poolp); - if (kmem_cache_destroy(cifs_mid_cachep)) - printk(KERN_WARNING - "cifs_destroy_mids: error not all structures were freed\n"); - - if (kmem_cache_destroy(cifs_oplock_cachep)) - printk(KERN_WARNING - "error not all oplock structures were freed\n"); + kmem_cache_destroy(cifs_mid_cachep); + kmem_cache_destroy(cifs_oplock_cachep); } static int cifs_oplock_thread(void * dummyarg) diff -puN fs/coda/inode.c~really-ignore-kmem_cache_destroy-return-value fs/coda/inode.c --- a/fs/coda/inode.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/coda/inode.c @@ -80,8 +80,7 @@ int coda_init_inodecache(void) void coda_destroy_inodecache(void) { - if (kmem_cache_destroy(coda_inode_cachep)) - printk(KERN_INFO "coda_inode_cache: not all structures were freed\n"); + kmem_cache_destroy(coda_inode_cachep); } static int coda_remount(struct super_block *sb, int *flags, char *data) diff -puN fs/efs/super.c~really-ignore-kmem_cache_destroy-return-value fs/efs/super.c --- a/fs/efs/super.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/efs/super.c @@ -90,8 +90,7 @@ static int init_inodecache(void) static void destroy_inodecache(void) { - if (kmem_cache_destroy(efs_inode_cachep)) - printk(KERN_INFO "efs_inode_cache: not all structures were freed\n"); + kmem_cache_destroy(efs_inode_cachep); } static void efs_put_super(struct super_block *s) diff -puN fs/ext2/super.c~really-ignore-kmem_cache_destroy-return-value fs/ext2/super.c --- a/fs/ext2/super.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/ext2/super.c @@ -184,8 +184,7 @@ static int init_inodecache(void) static void destroy_inodecache(void) { - if (kmem_cache_destroy(ext2_inode_cachep)) - printk(KERN_INFO "ext2_inode_cache: not all structures were freed\n"); + kmem_cache_destroy(ext2_inode_cachep); } static void ext2_clear_inode(struct inode *inode) diff -puN fs/ext3/super.c~really-ignore-kmem_cache_destroy-return-value fs/ext3/super.c --- a/fs/ext3/super.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/ext3/super.c @@ -490,8 +490,7 @@ static int init_inodecache(void) static void destroy_inodecache(void) { - if (kmem_cache_destroy(ext3_inode_cachep)) - printk(KERN_INFO "ext3_inode_cache: not all structures were freed\n"); + kmem_cache_destroy(ext3_inode_cachep); } static void ext3_clear_inode(struct inode *inode) diff -puN fs/fat/cache.c~really-ignore-kmem_cache_destroy-return-value fs/fat/cache.c --- a/fs/fat/cache.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/fat/cache.c @@ -58,8 +58,7 @@ int __init fat_cache_init(void) void fat_cache_destroy(void) { - if (kmem_cache_destroy(fat_cache_cachep)) - printk(KERN_INFO "fat_cache: not all structures were freed\n"); + kmem_cache_destroy(fat_cache_cachep); } static inline struct fat_cache *fat_cache_alloc(struct inode *inode) diff -puN fs/fat/inode.c~really-ignore-kmem_cache_destroy-return-value fs/fat/inode.c --- a/fs/fat/inode.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/fat/inode.c @@ -522,8 +522,7 @@ static int __init fat_init_inodecache(vo static void __exit fat_destroy_inodecache(void) { - if (kmem_cache_destroy(fat_inode_cachep)) - printk(KERN_INFO "fat_inode_cache: not all structures were freed\n"); + kmem_cache_destroy(fat_inode_cachep); } static int fat_remount(struct super_block *sb, int *flags, char *data) diff -puN fs/hfs/super.c~really-ignore-kmem_cache_destroy-return-value fs/hfs/super.c --- a/fs/hfs/super.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/hfs/super.c @@ -454,8 +454,7 @@ static int __init init_hfs_fs(void) static void __exit exit_hfs_fs(void) { unregister_filesystem(&hfs_fs_type); - if (kmem_cache_destroy(hfs_inode_cachep)) - printk(KERN_ERR "hfs_inode_cache: not all structures were freed\n"); + kmem_cache_destroy(hfs_inode_cachep); } module_init(init_hfs_fs) diff -puN fs/hfsplus/super.c~really-ignore-kmem_cache_destroy-return-value fs/hfsplus/super.c --- a/fs/hfsplus/super.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/hfsplus/super.c @@ -493,8 +493,7 @@ static int __init init_hfsplus_fs(void) static void __exit exit_hfsplus_fs(void) { unregister_filesystem(&hfsplus_fs_type); - if (kmem_cache_destroy(hfsplus_inode_cachep)) - printk(KERN_ERR "hfsplus_inode_cache: not all structures were freed\n"); + kmem_cache_destroy(hfsplus_inode_cachep); } module_init(init_hfsplus_fs) diff -puN fs/hpfs/super.c~really-ignore-kmem_cache_destroy-return-value fs/hpfs/super.c --- a/fs/hpfs/super.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/hpfs/super.c @@ -203,8 +203,7 @@ static int init_inodecache(void) static void destroy_inodecache(void) { - if (kmem_cache_destroy(hpfs_inode_cachep)) - printk(KERN_INFO "hpfs_inode_cache: not all structures were freed\n"); + kmem_cache_destroy(hpfs_inode_cachep); } /* diff -puN fs/isofs/inode.c~really-ignore-kmem_cache_destroy-return-value fs/isofs/inode.c --- a/fs/isofs/inode.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/isofs/inode.c @@ -96,9 +96,7 @@ static int init_inodecache(void) static void destroy_inodecache(void) { - if (kmem_cache_destroy(isofs_inode_cachep)) - printk(KERN_INFO "iso_inode_cache: not all structures were " - "freed\n"); + kmem_cache_destroy(isofs_inode_cachep); } static int isofs_remount(struct super_block *sb, int *flags, char *data) diff -puN fs/minix/inode.c~really-ignore-kmem_cache_destroy-return-value fs/minix/inode.c --- a/fs/minix/inode.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/minix/inode.c @@ -90,8 +90,7 @@ static int init_inodecache(void) static void destroy_inodecache(void) { - if (kmem_cache_destroy(minix_inode_cachep)) - printk(KERN_INFO "minix_inode_cache: not all structures were freed\n"); + kmem_cache_destroy(minix_inode_cachep); } static struct super_operations minix_sops = { diff -puN fs/ncpfs/inode.c~really-ignore-kmem_cache_destroy-return-value fs/ncpfs/inode.c --- a/fs/ncpfs/inode.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/ncpfs/inode.c @@ -81,8 +81,7 @@ static int init_inodecache(void) static void destroy_inodecache(void) { - if (kmem_cache_destroy(ncp_inode_cachep)) - printk(KERN_INFO "ncp_inode_cache: not all structures were freed\n"); + kmem_cache_destroy(ncp_inode_cachep); } static int ncp_remount(struct super_block *sb, int *flags, char* data) diff -puN fs/nfs/direct.c~really-ignore-kmem_cache_destroy-return-value fs/nfs/direct.c --- a/fs/nfs/direct.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/nfs/direct.c @@ -855,6 +855,5 @@ int __init nfs_init_directcache(void) */ void nfs_destroy_directcache(void) { - if (kmem_cache_destroy(nfs_direct_cachep)) - printk(KERN_INFO "nfs_direct_cache: not all structures were freed\n"); + kmem_cache_destroy(nfs_direct_cachep); } diff -puN fs/nfs/inode.c~really-ignore-kmem_cache_destroy-return-value fs/nfs/inode.c --- a/fs/nfs/inode.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/nfs/inode.c @@ -1124,8 +1124,7 @@ static int __init nfs_init_inodecache(vo static void nfs_destroy_inodecache(void) { - if (kmem_cache_destroy(nfs_inode_cachep)) - printk(KERN_INFO "nfs_inode_cache: not all structures were freed\n"); + kmem_cache_destroy(nfs_inode_cachep); } /* diff -puN fs/nfs/pagelist.c~really-ignore-kmem_cache_destroy-return-value fs/nfs/pagelist.c --- a/fs/nfs/pagelist.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/nfs/pagelist.c @@ -392,7 +392,6 @@ int __init nfs_init_nfspagecache(void) void nfs_destroy_nfspagecache(void) { - if (kmem_cache_destroy(nfs_page_cachep)) - printk(KERN_INFO "nfs_page: not all structures were freed\n"); + kmem_cache_destroy(nfs_page_cachep); } diff -puN fs/nfs/read.c~really-ignore-kmem_cache_destroy-return-value fs/nfs/read.c --- a/fs/nfs/read.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/nfs/read.c @@ -735,6 +735,5 @@ int __init nfs_init_readpagecache(void) void nfs_destroy_readpagecache(void) { mempool_destroy(nfs_rdata_mempool); - if (kmem_cache_destroy(nfs_rdata_cachep)) - printk(KERN_INFO "nfs_read_data: not all structures were freed\n"); + kmem_cache_destroy(nfs_rdata_cachep); } diff -puN fs/nfs/write.c~really-ignore-kmem_cache_destroy-return-value fs/nfs/write.c --- a/fs/nfs/write.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/nfs/write.c @@ -1558,7 +1558,6 @@ void nfs_destroy_writepagecache(void) { mempool_destroy(nfs_commit_mempool); mempool_destroy(nfs_wdata_mempool); - if (kmem_cache_destroy(nfs_wdata_cachep)) - printk(KERN_INFO "nfs_write_data: not all structures were freed\n"); + kmem_cache_destroy(nfs_wdata_cachep); } diff -puN fs/nfsd/nfs4state.c~really-ignore-kmem_cache_destroy-return-value fs/nfsd/nfs4state.c --- a/fs/nfsd/nfs4state.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/nfsd/nfs4state.c @@ -1005,13 +1005,10 @@ alloc_init_file(struct inode *ino) static void nfsd4_free_slab(kmem_cache_t **slab) { - int status; - if (*slab == NULL) return; - status = kmem_cache_destroy(*slab); + kmem_cache_destroy(*slab); *slab = NULL; - WARN_ON(status); } static void diff -puN fs/ntfs/super.c~really-ignore-kmem_cache_destroy-return-value fs/ntfs/super.c --- a/fs/ntfs/super.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/ntfs/super.c @@ -3248,32 +3248,14 @@ ictx_err_out: static void __exit exit_ntfs_fs(void) { - int err = 0; - ntfs_debug("Unregistering NTFS driver."); unregister_filesystem(&ntfs_fs_type); - - if (kmem_cache_destroy(ntfs_big_inode_cache) && (err = 1)) - printk(KERN_CRIT "NTFS: Failed to destory %s.\n", - ntfs_big_inode_cache_name); - if (kmem_cache_destroy(ntfs_inode_cache) && (err = 1)) - printk(KERN_CRIT "NTFS: Failed to destory %s.\n", - ntfs_inode_cache_name); - if (kmem_cache_destroy(ntfs_name_cache) && (err = 1)) - printk(KERN_CRIT "NTFS: Failed to destory %s.\n", - ntfs_name_cache_name); - if (kmem_cache_destroy(ntfs_attr_ctx_cache) && (err = 1)) - printk(KERN_CRIT "NTFS: Failed to destory %s.\n", - ntfs_attr_ctx_cache_name); - if (kmem_cache_destroy(ntfs_index_ctx_cache) && (err = 1)) - printk(KERN_CRIT "NTFS: Failed to destory %s.\n", - ntfs_index_ctx_cache_name); - if (err) - printk(KERN_CRIT "NTFS: This causes memory to leak! There is " - "probably a BUG in the driver! Please report " - "you saw this message to " - "linux-ntfs-dev@lists.sourceforge.net\n"); + kmem_cache_destroy(ntfs_big_inode_cache); + kmem_cache_destroy(ntfs_inode_cache); + kmem_cache_destroy(ntfs_name_cache); + kmem_cache_destroy(ntfs_attr_ctx_cache); + kmem_cache_destroy(ntfs_index_ctx_cache); /* Unregister the ntfs sysctls. */ ntfs_sysctl(0); } diff -puN fs/ocfs2/dlm/dlmfs.c~really-ignore-kmem_cache_destroy-return-value fs/ocfs2/dlm/dlmfs.c --- a/fs/ocfs2/dlm/dlmfs.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/ocfs2/dlm/dlmfs.c @@ -627,9 +627,7 @@ static void __exit exit_dlmfs_fs(void) flush_workqueue(user_dlm_worker); destroy_workqueue(user_dlm_worker); - if (kmem_cache_destroy(dlmfs_inode_cache)) - printk(KERN_INFO "dlmfs_inode_cache: not all structures " - "were freed\n"); + kmem_cache_destroy(dlmfs_inode_cache); } MODULE_AUTHOR("Oracle"); diff -puN fs/qnx4/inode.c~really-ignore-kmem_cache_destroy-return-value fs/qnx4/inode.c --- a/fs/qnx4/inode.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/qnx4/inode.c @@ -555,9 +555,7 @@ static int init_inodecache(void) static void destroy_inodecache(void) { - if (kmem_cache_destroy(qnx4_inode_cachep)) - printk(KERN_INFO - "qnx4_inode_cache: not all structures were freed\n"); + kmem_cache_destroy(qnx4_inode_cachep); } static int qnx4_get_sb(struct file_system_type *fs_type, diff -puN fs/reiserfs/super.c~really-ignore-kmem_cache_destroy-return-value fs/reiserfs/super.c --- a/fs/reiserfs/super.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/reiserfs/super.c @@ -532,9 +532,7 @@ static int init_inodecache(void) static void destroy_inodecache(void) { - if (kmem_cache_destroy(reiserfs_inode_cachep)) - reiserfs_warning(NULL, - "reiserfs_inode_cache: not all structures were freed"); + kmem_cache_destroy(reiserfs_inode_cachep); } /* we don't mark inodes dirty, we just log them */ diff -puN fs/romfs/inode.c~really-ignore-kmem_cache_destroy-return-value fs/romfs/inode.c --- a/fs/romfs/inode.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/romfs/inode.c @@ -589,8 +589,7 @@ static int init_inodecache(void) static void destroy_inodecache(void) { - if (kmem_cache_destroy(romfs_inode_cachep)) - printk(KERN_INFO "romfs_inode_cache: not all structures were freed\n"); + kmem_cache_destroy(romfs_inode_cachep); } static int romfs_remount(struct super_block *sb, int *flags, char *data) diff -puN fs/smbfs/inode.c~really-ignore-kmem_cache_destroy-return-value fs/smbfs/inode.c --- a/fs/smbfs/inode.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/smbfs/inode.c @@ -89,8 +89,7 @@ static int init_inodecache(void) static void destroy_inodecache(void) { - if (kmem_cache_destroy(smb_inode_cachep)) - printk(KERN_INFO "smb_inode_cache: not all structures were freed\n"); + kmem_cache_destroy(smb_inode_cachep); } static int smb_remount(struct super_block *sb, int *flags, char *data) diff -puN fs/smbfs/request.c~really-ignore-kmem_cache_destroy-return-value fs/smbfs/request.c --- a/fs/smbfs/request.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/smbfs/request.c @@ -49,8 +49,7 @@ int smb_init_request_cache(void) void smb_destroy_request_cache(void) { - if (kmem_cache_destroy(req_cachep)) - printk(KERN_INFO "smb_destroy_request_cache: not all structures were freed\n"); + kmem_cache_destroy(req_cachep); } /* diff -puN fs/udf/super.c~really-ignore-kmem_cache_destroy-return-value fs/udf/super.c --- a/fs/udf/super.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/udf/super.c @@ -156,8 +156,7 @@ static int init_inodecache(void) static void destroy_inodecache(void) { - if (kmem_cache_destroy(udf_inode_cachep)) - printk(KERN_INFO "udf_inode_cache: not all structures were freed\n"); + kmem_cache_destroy(udf_inode_cachep); } /* Superblock operations */ diff -puN fs/ufs/super.c~really-ignore-kmem_cache_destroy-return-value fs/ufs/super.c --- a/fs/ufs/super.c~really-ignore-kmem_cache_destroy-return-value +++ a/fs/ufs/super.c @@ -1244,8 +1244,7 @@ static int init_inodecache(void) static void destroy_inodecache(void) { - if (kmem_cache_destroy(ufs_inode_cachep)) - printk(KERN_INFO "ufs_inode_cache: not all structures were freed\n"); + kmem_cache_destroy(ufs_inode_cachep); } #ifdef CONFIG_QUOTA diff -puN fs/xfs/linux-2.6/kmem.h~really-ignore-kmem_cache_destroy-return-value fs/xfs/linux-2.6/kmem.h --- a/fs/xfs/linux-2.6/kmem.h~really-ignore-kmem_cache_destroy-return-value +++ a/fs/xfs/linux-2.6/kmem.h @@ -91,8 +91,8 @@ kmem_zone_free(kmem_zone_t *zone, void * static inline void kmem_zone_destroy(kmem_zone_t *zone) { - if (zone && kmem_cache_destroy(zone)) - BUG(); + if (zone) + kmem_cache_destroy(zone); } extern void *kmem_zone_alloc(kmem_zone_t *, unsigned int __nocast); diff -puN ipc/mqueue.c~really-ignore-kmem_cache_destroy-return-value ipc/mqueue.c --- a/ipc/mqueue.c~really-ignore-kmem_cache_destroy-return-value +++ a/ipc/mqueue.c @@ -1274,10 +1274,7 @@ out_filesystem: out_sysctl: if (mq_sysctl_table) unregister_sysctl_table(mq_sysctl_table); - if (kmem_cache_destroy(mqueue_inode_cachep)) { - printk(KERN_INFO - "mqueue_inode_cache: not all structures were freed\n"); - } + kmem_cache_destroy(mqueue_inode_cachep); return error; } diff -puN mm/shmem.c~really-ignore-kmem_cache_destroy-return-value mm/shmem.c --- a/mm/shmem.c~really-ignore-kmem_cache_destroy-return-value +++ a/mm/shmem.c @@ -2156,8 +2156,7 @@ static int init_inodecache(void) static void destroy_inodecache(void) { - if (kmem_cache_destroy(shmem_inode_cachep)) - printk(KERN_INFO "shmem_inode_cache: not all structures were freed\n"); + kmem_cache_destroy(shmem_inode_cachep); } static const struct address_space_operations shmem_aops = { diff -puN net/sunrpc/rpc_pipe.c~really-ignore-kmem_cache_destroy-return-value net/sunrpc/rpc_pipe.c --- a/net/sunrpc/rpc_pipe.c~really-ignore-kmem_cache_destroy-return-value +++ a/net/sunrpc/rpc_pipe.c @@ -857,7 +857,6 @@ int register_rpc_pipefs(void) void unregister_rpc_pipefs(void) { - if (kmem_cache_destroy(rpc_inode_cachep)) - printk(KERN_WARNING "RPC: unable to free inode cache\n"); + kmem_cache_destroy(rpc_inode_cachep); unregister_filesystem(&rpc_pipe_fs_type); } diff -puN net/sunrpc/sched.c~really-ignore-kmem_cache_destroy-return-value net/sunrpc/sched.c --- a/net/sunrpc/sched.c~really-ignore-kmem_cache_destroy-return-value +++ a/net/sunrpc/sched.c @@ -1059,10 +1059,10 @@ rpc_destroy_mempool(void) mempool_destroy(rpc_buffer_mempool); if (rpc_task_mempool) mempool_destroy(rpc_task_mempool); - if (rpc_task_slabp && kmem_cache_destroy(rpc_task_slabp)) - printk(KERN_INFO "rpc_task: not all structures were freed\n"); - if (rpc_buffer_slabp && kmem_cache_destroy(rpc_buffer_slabp)) - printk(KERN_INFO "rpc_buffers: not all structures were freed\n"); + if (rpc_task_slabp) + kmem_cache_destroy(rpc_task_slabp); + if (rpc_buffer_slabp) + kmem_cache_destroy(rpc_buffer_slabp); } int _