Re: 3.5-rc3: BUG: Dentry still in use (1) [unmount of cgroupcgroup]

From: tj@xxxxxxxxxx
Date: Fri Jun 29 2012 - 12:58:09 EST


Hey,

On Fri, Jun 29, 2012 at 10:20:11AM +0800, Li Zefan wrote:
> > Can you please elaborate a bit? I'm not really following? Where does
> > the last root->d_count-- come from?
>
>
> From my limited knowledge about vfs internal, seems the parent's refcnt won't go down
> to 0 before its children. When mkdir, the parent's refcnt will be incremented, and
> after rmdir, dput(subdir) will drop subdir's refcnt and then drop parent's.
>
> So when dropping the subdir's refcnt and leading the superblock to be killed, the root's
> dentry is still > 0.

Heh, yeah, I thought you found who was holding out on the refcnt. :)

> >> I use this script to reproduce the bug:
> >>
> >> mount -t cgroup -o cpu xxx /mnt
> >> mkdir /mnt/sub
> >> sleep 100 < /mnt/sub &
> >> kill $!
> >> wait $!
> >> rmdir /mnt/sub
> >> umount /mnt
> > Unfortunately, this doesn't reproduce the bug here either. :(
>
> I can reproduce the bug reliably.. Try s/cpu/perf or s/cpu/net_cls, which have fewer
> cgroup files?

Hmm... weird. Maybe some debug config option I have is preventing the
race from occurring as reliably? Can you please attach your .config?

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/