提交 992ec6a9 编写于 作者: C Christoph Hellwig 提交者: Jens Axboe

dm: remove free_table_devices

free_table_devices just warns and frees all table_device structures when
the target removal did not remove them.  This should never happen, but
if it did, just freeing the structure without deleting them from the
list or cleaning up the resources would not help at all.  So just WARN on
a non-empty list instead.
Signed-off-by: NChristoph Hellwig <hch@lst.de>
Signed-off-by: NYu Kuai <yukuai3@huawei.com>
Reviewed-by: NMike Snitzer <snitzer@kernel.org>
Link: https://lore.kernel.org/r/20221115141054.1051801-3-yukuai1@huaweicloud.comSigned-off-by: NJens Axboe <axboe@kernel.dk>
上级 d90db3b1
...@@ -833,19 +833,6 @@ void dm_put_table_device(struct mapped_device *md, struct dm_dev *d) ...@@ -833,19 +833,6 @@ void dm_put_table_device(struct mapped_device *md, struct dm_dev *d)
mutex_unlock(&md->table_devices_lock); mutex_unlock(&md->table_devices_lock);
} }
static void free_table_devices(struct list_head *devices)
{
struct list_head *tmp, *next;
list_for_each_safe(tmp, next, devices) {
struct table_device *td = list_entry(tmp, struct table_device, list);
DMWARN("dm_destroy: %s still exists with %d references",
td->dm_dev.name, refcount_read(&td->count));
kfree(td);
}
}
/* /*
* Get the geometry associated with a dm device * Get the geometry associated with a dm device
*/ */
...@@ -2122,7 +2109,7 @@ static void free_dev(struct mapped_device *md) ...@@ -2122,7 +2109,7 @@ static void free_dev(struct mapped_device *md)
cleanup_mapped_device(md); cleanup_mapped_device(md);
free_table_devices(&md->table_devices); WARN_ON_ONCE(!list_empty(&md->table_devices));
dm_stats_cleanup(&md->stats); dm_stats_cleanup(&md->stats);
free_minor(minor); free_minor(minor);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册