[dm-devel] [PATCH] md/dm-stats.c: use list_for_each_entry*() APIs to simplify code

qiwuchen55 at gmail.com qiwuchen55 at gmail.com
Fri Feb 28 03:38:29 UTC 2020


From: chenqiwu <chenqiwu at xiaomi.com>

Use list_for_each_entry*() APIs instead of open-coding to
simplify code.

Signed-off-by: chenqiwu <chenqiwu at xiaomi.com>
---
 drivers/md/dm-stats.c | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/drivers/md/dm-stats.c b/drivers/md/dm-stats.c
index 7141704..34637d1 100644
--- a/drivers/md/dm-stats.c
+++ b/drivers/md/dm-stats.c
@@ -206,11 +206,10 @@ void dm_stats_init(struct dm_stats *stats)
 void dm_stats_cleanup(struct dm_stats *stats)
 {
 	size_t ni;
-	struct dm_stat *s;
+	struct dm_stat *s, *tmp;
 	struct dm_stat_shared *shared;
 
-	while (!list_empty(&stats->list)) {
-		s = container_of(stats->list.next, struct dm_stat, list_entry);
+	list_for_each_entry_safe(s, tmp, &stats->list, list_entry) {
 		list_del(&s->list_entry);
 		for (ni = 0; ni < s->n_entries; ni++) {
 			shared = &s->stat_shared[ni];
@@ -240,7 +239,6 @@ static int dm_stats_create(struct dm_stats *stats, sector_t start, sector_t end,
 			   void (*resume_callback)(struct mapped_device *),
 			   struct mapped_device *md)
 {
-	struct list_head *l;
 	struct dm_stat *s, *tmp_s;
 	sector_t n_entries;
 	size_t ni;
@@ -360,8 +358,7 @@ static int dm_stats_create(struct dm_stats *stats, sector_t start, sector_t end,
 
 	mutex_lock(&stats->mutex);
 	s->id = 0;
-	list_for_each(l, &stats->list) {
-		tmp_s = container_of(l, struct dm_stat, list_entry);
+	list_for_each_entry(tmp_s, &stats->list, list_entry) {
 		if (WARN_ON(tmp_s->id < s->id)) {
 			r = -EINVAL;
 			goto out_unlock_resume;
@@ -375,7 +372,7 @@ static int dm_stats_create(struct dm_stats *stats, sector_t start, sector_t end,
 		s->id++;
 	}
 	ret_id = s->id;
-	list_add_tail_rcu(&s->list_entry, l);
+	list_add_tail_rcu(&s->list_entry, &stats->list);
 	mutex_unlock(&stats->mutex);
 
 	resume_callback(md);
-- 
1.9.1





More information about the dm-devel mailing list