diff options
author | Chris Malley <mail@chrismalley.co.uk> | 2008-05-19 20:11:50 +0100 |
---|---|---|
committer | David Woodhouse <dwmw2@infradead.org> | 2008-06-04 17:53:31 +0100 |
commit | 71a928c0e52cedc43747c64b96a5f74592ab678f (patch) | |
tree | 98f4862294a23b859af87f6df44e9668a3fbc133 /drivers/mtd/mtdpart.c | |
parent | 59018b6d2acabb114ab58637e6ab95ba424a89d0 (diff) | |
download | linux-stable-71a928c0e52cedc43747c64b96a5f74592ab678f.tar.gz linux-stable-71a928c0e52cedc43747c64b96a5f74592ab678f.tar.bz2 linux-stable-71a928c0e52cedc43747c64b96a5f74592ab678f.zip |
[MTD] Use list_for_each_entry[_safe] where appropriate.
Janitorial work to remove temporary pointers and make some functions a bit
more readable.
Signed-off-by: Chris Malley <mail@chrismalley.co.uk>
Reviewed-By: Jörn Engel <joern@logfs.org>
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Diffstat (limited to 'drivers/mtd/mtdpart.c')
-rw-r--r-- | drivers/mtd/mtdpart.c | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c index 11b803cc405b..56a760a736a9 100644 --- a/drivers/mtd/mtdpart.c +++ b/drivers/mtd/mtdpart.c @@ -300,22 +300,15 @@ static int part_block_markbad (struct mtd_info *mtd, loff_t ofs) int del_mtd_partitions(struct mtd_info *master) { - struct list_head *node; - struct mtd_part *slave; + struct mtd_part *slave, *next; - for (node = mtd_partitions.next; - node != &mtd_partitions; - node = node->next) { - slave = list_entry(node, struct mtd_part, list); + list_for_each_entry_safe(slave, next, &mtd_partitions, list) if (slave->master == master) { - struct list_head *prev = node->prev; - __list_del(prev, node->next); + list_del(&slave->list); if(slave->registered) del_mtd_device(&slave->mtd); kfree(slave); - node = prev; } - } return 0; } @@ -511,18 +504,16 @@ static LIST_HEAD(part_parsers); static struct mtd_part_parser *get_partition_parser(const char *name) { - struct list_head *this; - void *ret = NULL; - spin_lock(&part_parser_lock); + struct mtd_part_parser *p, *ret = NULL; - list_for_each(this, &part_parsers) { - struct mtd_part_parser *p = list_entry(this, struct mtd_part_parser, list); + spin_lock(&part_parser_lock); + list_for_each_entry(p, &part_parsers, list) if (!strcmp(p->name, name) && try_module_get(p->owner)) { ret = p; break; } - } + spin_unlock(&part_parser_lock); return ret; |