Browse Source

dm: drop NULL test before kmem_cache_destroy() and mempool_destroy()

Remove DM's unneeded NULL tests before calling these destroy functions,
now that they check for NULL, thanks to these v4.3 commits:
3942d2991 ("mm/slab_common: allow NULL cache pointer in kmem_cache_destroy()")
4e3ca3e03 ("mm/mempool: allow NULL `pool' pointer in mempool_destroy()")

The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@@ expression x; @@
-if (x != NULL)
  \(kmem_cache_destroy\|mempool_destroy\|dma_pool_destroy\)(x);
// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Julia Lawall 10 years ago
parent
commit
6f65985e26

+ 2 - 6
drivers/md/dm-bufio.c

@@ -1861,12 +1861,8 @@ static void __exit dm_bufio_exit(void)
 	cancel_delayed_work_sync(&dm_bufio_work);
 	cancel_delayed_work_sync(&dm_bufio_work);
 	destroy_workqueue(dm_bufio_wq);
 	destroy_workqueue(dm_bufio_wq);
 
 
-	for (i = 0; i < ARRAY_SIZE(dm_bufio_caches); i++) {
-		struct kmem_cache *kc = dm_bufio_caches[i];
-
-		if (kc)
-			kmem_cache_destroy(kc);
-	}
+	for (i = 0; i < ARRAY_SIZE(dm_bufio_caches); i++)
+		kmem_cache_destroy(dm_bufio_caches[i]);
 
 
 	for (i = 0; i < ARRAY_SIZE(dm_bufio_cache_names); i++)
 	for (i = 0; i < ARRAY_SIZE(dm_bufio_cache_names); i++)
 		kfree(dm_bufio_cache_names[i]);
 		kfree(dm_bufio_cache_names[i]);

+ 1 - 2
drivers/md/dm-cache-target.c

@@ -2309,8 +2309,7 @@ static void destroy(struct cache *cache)
 {
 {
 	unsigned i;
 	unsigned i;
 
 
-	if (cache->migration_pool)
-		mempool_destroy(cache->migration_pool);
+	mempool_destroy(cache->migration_pool);
 
 
 	if (cache->all_io_ds)
 	if (cache->all_io_ds)
 		dm_deferred_set_destroy(cache->all_io_ds);
 		dm_deferred_set_destroy(cache->all_io_ds);

+ 2 - 4
drivers/md/dm-crypt.c

@@ -1544,10 +1544,8 @@ static void crypt_dtr(struct dm_target *ti)
 	if (cc->bs)
 	if (cc->bs)
 		bioset_free(cc->bs);
 		bioset_free(cc->bs);
 
 
-	if (cc->page_pool)
-		mempool_destroy(cc->page_pool);
-	if (cc->req_pool)
-		mempool_destroy(cc->req_pool);
+	mempool_destroy(cc->page_pool);
+	mempool_destroy(cc->req_pool);
 
 
 	if (cc->iv_gen_ops && cc->iv_gen_ops->dtr)
 	if (cc->iv_gen_ops && cc->iv_gen_ops->dtr)
 		cc->iv_gen_ops->dtr(cc);
 		cc->iv_gen_ops->dtr(cc);

+ 1 - 2
drivers/md/dm-io.c

@@ -65,8 +65,7 @@ struct dm_io_client *dm_io_client_create(void)
 	return client;
 	return client;
 
 
    bad:
    bad:
-	if (client->pool)
-		mempool_destroy(client->pool);
+	mempool_destroy(client->pool);
 	kfree(client);
 	kfree(client);
 	return ERR_PTR(-ENOMEM);
 	return ERR_PTR(-ENOMEM);
 }
 }

+ 1 - 2
drivers/md/dm-log-userspace-base.c

@@ -313,8 +313,7 @@ static int userspace_ctr(struct dm_dirty_log *log, struct dm_target *ti,
 out:
 out:
 	kfree(devices_rdata);
 	kfree(devices_rdata);
 	if (r) {
 	if (r) {
-		if (lc->flush_entry_pool)
-			mempool_destroy(lc->flush_entry_pool);
+		mempool_destroy(lc->flush_entry_pool);
 		kfree(lc);
 		kfree(lc);
 		kfree(ctr_str);
 		kfree(ctr_str);
 	} else {
 	} else {

+ 1 - 3
drivers/md/dm-region-hash.c

@@ -249,9 +249,7 @@ void dm_region_hash_destroy(struct dm_region_hash *rh)
 	if (rh->log)
 	if (rh->log)
 		dm_dirty_log_destroy(rh->log);
 		dm_dirty_log_destroy(rh->log);
 
 
-	if (rh->region_pool)
-		mempool_destroy(rh->region_pool);
-
+	mempool_destroy(rh->region_pool);
 	vfree(rh->buckets);
 	vfree(rh->buckets);
 	kfree(rh);
 	kfree(rh);
 }
 }

+ 4 - 9
drivers/md/dm.c

@@ -2254,10 +2254,8 @@ static void cleanup_mapped_device(struct mapped_device *md)
 		destroy_workqueue(md->wq);
 		destroy_workqueue(md->wq);
 	if (md->kworker_task)
 	if (md->kworker_task)
 		kthread_stop(md->kworker_task);
 		kthread_stop(md->kworker_task);
-	if (md->io_pool)
-		mempool_destroy(md->io_pool);
-	if (md->rq_pool)
-		mempool_destroy(md->rq_pool);
+	mempool_destroy(md->io_pool);
+	mempool_destroy(md->rq_pool);
 	if (md->bs)
 	if (md->bs)
 		bioset_free(md->bs);
 		bioset_free(md->bs);
 
 
@@ -3542,11 +3540,8 @@ void dm_free_md_mempools(struct dm_md_mempools *pools)
 	if (!pools)
 	if (!pools)
 		return;
 		return;
 
 
-	if (pools->io_pool)
-		mempool_destroy(pools->io_pool);
-
-	if (pools->rq_pool)
-		mempool_destroy(pools->rq_pool);
+	mempool_destroy(pools->io_pool);
+	mempool_destroy(pools->rq_pool);
 
 
 	if (pools->bs)
 	if (pools->bs)
 		bioset_free(pools->bs);
 		bioset_free(pools->bs);