Thread (15 messages) 15 messages, 2 authors, 2014-06-27

Re: [PATCH 3/5] cgroup: fix mount failure in a corner case

From: Li Zefan <hidden>
Date: 2014-06-24 01:15:12
Also in: lkml

On 2014/6/21 3:10, Tejun Heo wrote:
On Thu, Jun 12, 2014 at 02:32:13PM +0800, Li Zefan wrote:
quoted
@@ -1677,6 +1679,22 @@ static struct dentry *cgroup_mount(struct file_system_type *fs_type,
 		goto out_unlock;
 	}
 
+	/*
+	 * If some subsystems have been bound to existing cgroup hierarchies,
+	 * but those hierachies are being destroyed, let's wait a little bit
+	 * and retry.
+	 */
+	for_each_subsys(ss, i) {
+		if (!(opts.subsys_mask & (1 << i)))
+			continue;
+		if (!percpu_ref_alive(&ss->root->cgrp.self.refcnt)) {
Can't we just do tryget_live() instead and then put before retrying?
It's not exactly a hot path and the operations are dirt cheap anyway.
No much difference, though would be a bit more code. I can do that.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help