From: Joe Thornber Audit for list_for_each_*entry* --- 25-akpm/drivers/md/dm-ioctl.c | 17 +++++------------ 25-akpm/drivers/md/dm-table.c | 6 ++---- 25-akpm/drivers/md/dm-target.c | 6 +----- 3 files changed, 8 insertions(+), 21 deletions(-) diff -puN drivers/md/dm-ioctl.c~dm-03-list_for_each_entry-audit drivers/md/dm-ioctl.c --- 25/drivers/md/dm-ioctl.c~dm-03-list_for_each_entry-audit Fri Mar 5 13:23:41 2004 +++ 25-akpm/drivers/md/dm-ioctl.c Fri Mar 5 13:23:41 2004 @@ -88,30 +88,24 @@ static unsigned int hash_str(const char *---------------------------------------------------------------*/ static struct hash_cell *__get_name_cell(const char *str) { - struct list_head *tmp; struct hash_cell *hc; unsigned int h = hash_str(str); - list_for_each (tmp, _name_buckets + h) { - hc = list_entry(tmp, struct hash_cell, name_list); + list_for_each_entry (hc, _name_buckets + h, name_list) if (!strcmp(hc->name, str)) return hc; - } return NULL; } static struct hash_cell *__get_uuid_cell(const char *str) { - struct list_head *tmp; struct hash_cell *hc; unsigned int h = hash_str(str); - list_for_each (tmp, _uuid_buckets + h) { - hc = list_entry(tmp, struct hash_cell, uuid_list); + list_for_each_entry (hc, _uuid_buckets + h, uuid_list) if (!strcmp(hc->uuid, str)) return hc; - } return NULL; } @@ -935,6 +929,7 @@ static void retrieve_deps(struct dm_tabl unsigned int count = 0; struct list_head *tmp; size_t len, needed; + struct dm_dev *dd; struct dm_target_deps *deps; deps = get_result_buffer(param, param_size, &len); @@ -942,7 +937,7 @@ static void retrieve_deps(struct dm_tabl /* * Count the devices. */ - list_for_each(tmp, dm_table_get_devices(table)) + list_for_each (tmp, dm_table_get_devices(table)) count++; /* @@ -959,10 +954,8 @@ static void retrieve_deps(struct dm_tabl */ deps->count = count; count = 0; - list_for_each(tmp, dm_table_get_devices(table)) { - struct dm_dev *dd = list_entry(tmp, struct dm_dev, list); + list_for_each_entry (dd, dm_table_get_devices(table), list) deps->dev[count++] = huge_encode_dev(dd->bdev->bd_dev); - } param->data_size = param->data_start + needed; } diff -puN drivers/md/dm-table.c~dm-03-list_for_each_entry-audit drivers/md/dm-table.c --- 25/drivers/md/dm-table.c~dm-03-list_for_each_entry-audit Fri Mar 5 13:23:41 2004 +++ 25-akpm/drivers/md/dm-table.c Fri Mar 5 13:23:41 2004 @@ -329,13 +329,11 @@ static int lookup_device(const char *pat */ static struct dm_dev *find_device(struct list_head *l, dev_t dev) { - struct list_head *tmp; + struct dm_dev *dd; - list_for_each(tmp, l) { - struct dm_dev *dd = list_entry(tmp, struct dm_dev, list); + list_for_each_entry (dd, l, list) if (dd->bdev->bd_dev == dev) return dd; - } return NULL; } diff -puN drivers/md/dm-target.c~dm-03-list_for_each_entry-audit drivers/md/dm-target.c --- 25/drivers/md/dm-target.c~dm-03-list_for_each_entry-audit Fri Mar 5 13:23:41 2004 +++ 25-akpm/drivers/md/dm-target.c Fri Mar 5 13:23:41 2004 @@ -25,15 +25,11 @@ static DECLARE_RWSEM(_lock); static inline struct tt_internal *__find_target_type(const char *name) { - struct list_head *tih; struct tt_internal *ti; - list_for_each(tih, &_targets) { - ti = list_entry(tih, struct tt_internal, list); - + list_for_each_entry (ti, &_targets, list) if (!strcmp(name, ti->tt.name)) return ti; - } return NULL; } _