cgroup: list_del_init() on removed events
authorGreg Thelen <gthelen@google.com>
Wed, 28 Nov 2012 21:50:45 +0000 (13:50 -0800)
committerTejun Heo <tj@kernel.org>
Wed, 28 Nov 2012 21:52:14 +0000 (13:52 -0800)
Use list_del_init() rather than list_del() to remove events from
cgrp->event_list.  No functional change.  This is just defensive
coding.

Signed-off-by: Greg Thelen <gthelen@google.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
kernel/cgroup.c

index 589433f..46dcdbd 100644 (file)
@@ -3767,7 +3767,7 @@ static int cgroup_event_wake(wait_queue_t *wait, unsigned mode,
        if (flags & POLLHUP) {
                __remove_wait_queue(event->wqh, &event->wait);
                spin_lock(&cgrp->event_list_lock);
-               list_del(&event->list);
+               list_del_init(&event->list);
                spin_unlock(&cgrp->event_list_lock);
                /*
                 * We are in atomic context, but cgroup_event_remove() may
@@ -4341,7 +4341,7 @@ static int cgroup_destroy_locked(struct cgroup *cgrp)
        list_splice_init(&cgrp->event_list, &tmp_list);
        spin_unlock(&cgrp->event_list_lock);
        list_for_each_entry_safe(event, tmp, &tmp_list, list) {
-               list_del(&event->list);
+               list_del_init(&event->list);
                remove_wait_queue(event->wqh, &event->wait);
                eventfd_signal(event->eventfd, 1);
                schedule_work(&event->remove);