Skip to content
Snippets Groups Projects
Commit 1a1d92c1 authored by Alexey Dobriyan's avatar Alexey Dobriyan Committed by Linus Torvalds
Browse files

[PATCH] Really ignore kmem_cache_destroy return value


* 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: default avatarAlexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent f52720ca
No related merge requests found
......@@ -1079,7 +1079,7 @@ acpi_status acpi_os_purge_cache(acpi_cache_t * cache)
acpi_status acpi_os_delete_cache(acpi_cache_t * cache)
{
(void)kmem_cache_destroy(cache);
kmem_cache_destroy(cache);
return (AE_OK);
}
......
......@@ -2987,10 +2987,7 @@ static int __init ib_mad_init_module(void)
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);
......
......@@ -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 @@ static int __init uhci_hcd_init(void)
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);
}
......
......@@ -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 = {
......
......@@ -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 = {
......
......@@ -446,9 +446,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);
}
/*
......
......@@ -268,8 +268,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 = {
......
......@@ -699,8 +699,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
......@@ -778,13 +777,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
......@@ -819,13 +814,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)
......
......@@ -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)
......
......@@ -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)
......
......@@ -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)
......
......@@ -491,8 +491,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)
......
......@@ -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)
......
......@@ -528,8 +528,7 @@ static int __init fat_init_inodecache(void)
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)
......
......@@ -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)
......
......@@ -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)
......
......@@ -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);
}
/*
......
......@@ -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)
......
......@@ -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 = {
......
......@@ -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)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment