diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2012-02-08 11:12:18 +0000 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2012-02-08 11:12:18 +0000 |
commit | 02aeb23f1f1f9c9b0b6fdb5f66d1188c82b438b8 (patch) | |
tree | 2780033bf9632e1a1d9bfa1ae4a8ad814d63774f /lib/label/label.c | |
parent | b6e97cea2ca3eb78ca29d50467114f95b7931248 (diff) | |
download | lvm2-02aeb23f1f1f9c9b0b6fdb5f66d1188c82b438b8.tar.gz lvm2-02aeb23f1f1f9c9b0b6fdb5f66d1188c82b438b8.tar.xz lvm2-02aeb23f1f1f9c9b0b6fdb5f66d1188c82b438b8.zip |
Use dm_list_iterate_items_safe
And avoid direct access to list member variables.
Inline _free_li().
Diffstat (limited to 'lib/label/label.c')
-rw-r--r-- | lib/label/label.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/lib/label/label.c b/lib/label/label.c index eb04ea35..f377367e 100644 --- a/lib/label/label.c +++ b/lib/label/label.c @@ -56,11 +56,6 @@ static struct labeller_i *_alloc_li(const char *name, struct labeller *l) return li; } -static void _free_li(struct labeller_i *li) -{ - dm_free(li); -} - int label_init(void) { dm_list_init(&_labellers); @@ -69,14 +64,12 @@ int label_init(void) void label_exit(void) { - struct dm_list *c, *n; - struct labeller_i *li; + struct labeller_i *li, *tli; - for (c = _labellers.n; c && c != &_labellers; c = n) { - n = c->n; - li = dm_list_item(c, struct labeller_i); + dm_list_iterate_items_safe(li, tli, &_labellers) { + dm_list_del(&li->list); li->l->ops->destroy(li->l); - _free_li(li); + dm_free(li); } dm_list_init(&_labellers); |