Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9718ceb3 authored by Greg Thelen's avatar Greg Thelen Committed by Tejun Heo
Browse files

cgroup: list_del_init() on removed events



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: default avatarGreg Thelen <gthelen@google.com>
Signed-off-by: default avatarTejun Heo <tj@kernel.org>
parent 205a872b
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -3767,7 +3767,7 @@ static int cgroup_event_wake(wait_queue_t *wait, unsigned mode,
	if (flags & POLLHUP) {
	if (flags & POLLHUP) {
		__remove_wait_queue(event->wqh, &event->wait);
		__remove_wait_queue(event->wqh, &event->wait);
		spin_lock(&cgrp->event_list_lock);
		spin_lock(&cgrp->event_list_lock);
		list_del(&event->list);
		list_del_init(&event->list);
		spin_unlock(&cgrp->event_list_lock);
		spin_unlock(&cgrp->event_list_lock);
		/*
		/*
		 * We are in atomic context, but cgroup_event_remove() may
		 * 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);
	list_splice_init(&cgrp->event_list, &tmp_list);
	spin_unlock(&cgrp->event_list_lock);
	spin_unlock(&cgrp->event_list_lock);
	list_for_each_entry_safe(event, tmp, &tmp_list, list) {
	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);
		remove_wait_queue(event->wqh, &event->wait);
		eventfd_signal(event->eventfd, 1);
		eventfd_signal(event->eventfd, 1);
		schedule_work(&event->remove);
		schedule_work(&event->remove);