[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1335209867-1831-3-git-send-email-glommer@parallels.com>
Date: Mon, 23 Apr 2012 16:37:44 -0300
From: Glauber Costa <glommer@...allels.com>
To: Tejun Heo <tj@...nel.org>
Cc: <netdev@...r.kernel.org>, <cgroups@...r.kernel.org>,
Li Zefan <lizefan@...wei.com>,
<kamezawa.hiroyu@...fujitsu.com>,
David Miller <davem@...emloft.net>, <devel@...nvz.org>,
Glauber Costa <glommer@...allels.com>
Subject: [PATCH v2 2/5] blkcg: protect blkcg->policy_list
policy_list walks are protected with blkcg->lock everywhere else in the code.
In destroy(), they are not. Because destroy is usually protected with the
cgroup_mutex(), this is usually not a problem. But it would be a lot better
not to assume this.
Signed-off-by: Glauber Costa <glommer@...allels.com>
---
block/blk-cgroup.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
index 126c341..35fd701 100644
--- a/block/blk-cgroup.c
+++ b/block/blk-cgroup.c
@@ -1557,10 +1557,12 @@ static void blkiocg_destroy(struct cgroup *cgroup)
spin_unlock(&blkio_list_lock);
} while (1);
+ spin_lock_irqsave(&blkcg->lock, flags);
list_for_each_entry_safe(pn, pntmp, &blkcg->policy_list, node) {
blkio_policy_delete_node(pn);
kfree(pn);
}
+ spin_unlock_irqrestore(&blkcg->lock, flags);
free_css_id(&blkio_subsys, &blkcg->css);
rcu_read_unlock();
--
1.7.7.6
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists