Re: [PATCH 5/5] cgroup: fix a race between cgroup_mount() and cgroup_kill_sb()

From: Tejun Heo
Date: Tue Jun 24 2014 - 17:01:27 EST


Hello, Li.

On Tue, Jun 24, 2014 at 09:22:00AM +0800, Li Zefan wrote:
> > Ah, right. Gees, I'm really hating the fact that we have ->mount but
> > not ->umount. However, can't we make it a bit simpler by just
> > introducing a mutex protecting looking up and refing up an existing
> > root and a sb going away? The only problem is that the refcnt being
> > killed isn't atomic w.r.t. new live ref coming up, right? Why not
> > just add a mutex around them so that they can't race?
>
> Well, kill_sb() is called with sb->s_umount held, while kernfs_mount()
> returned with sb->s_umount held, so adding a mutex will lead to ABBA
> deadlock.

Hmmm? Why does that matter? The only region in cgroup_mount() which
needs to be put inside such mutex would be root lookup, no?

Thanks.

--
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/