> But _only after_ it's has gone to zero. When in fact there are no > more references to it, so it shouldn't matter. > > The fact that it does matter and that mark_mounts_for_expiry() > derefences mnt->mnt_namespace without actually having a proper > reference to the namespace is the real culprit here. > > This is the third bug found by Jamie Lokier, Ram and me in the > mnt_namespace change. So if we are looking at proper solutions I > think that is what we should be examining. E.g. having a separate task count, which is incremented/decremented only by clone/exit. If the task count goes to zero, umount_tree is called on root, but namespace is not freed. And each mnt_namespace holds a proper reference to the namespace, so it's safe to dereference it anytime. When truly no more references remain, the namespace can go away. Hmm? Miklos - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
- Follow-Ups:
- Re: [PATCH] fix race in mark_mounts_for_expiry()
- From: Miklos Szeredi <[email protected]>
- Re: [PATCH] fix race in mark_mounts_for_expiry()
- References:
- Re: [PATCH] fix race in mark_mounts_for_expiry()
- From: Miklos Szeredi <[email protected]>
- Re: [PATCH] fix race in mark_mounts_for_expiry()
- From: Miklos Szeredi <[email protected]>
- Re: [PATCH] fix race in mark_mounts_for_expiry()
- From: Miklos Szeredi <[email protected]>
- [PATCH] fix race in mark_mounts_for_expiry()
- From: Miklos Szeredi <[email protected]>
- Re: [PATCH] namespace.c: fix bind mount from foreign namespace
- From: Ram <[email protected]>
- Re: [PATCH] namespace.c: fix bind mount from foreign namespace
- From: Miklos Szeredi <[email protected]>
- Re: [PATCH] namespace.c: fix bind mount from foreign namespace
- From: Miklos Szeredi <[email protected]>
- Re: [PATCH] namespace.c: fix bind mount from foreign namespace
- From: Ram <[email protected]>
- Re: [PATCH] namespace.c: fix bind mount from foreign namespace
- From: Jamie Lokier <[email protected]>
- Re: [PATCH] namespace.c: fix bind mount from foreign namespace
- From: Ram <[email protected]>
- Re: [PATCH] namespace.c: fix bind mount from foreign namespace
- From: Miklos Szeredi <[email protected]>
- Re: [PATCH] namespace.c: fix bind mount from foreign namespace
- From: Jamie Lokier <[email protected]>
- Re: [PATCH] namespace.c: fix bind mount from foreign namespace
- From: Miklos Szeredi <[email protected]>
- Re: [PATCH] fix race in mark_mounts_for_expiry()
- From: David Howells <[email protected]>
- Re: [PATCH] fix race in mark_mounts_for_expiry()
- From: David Howells <[email protected]>
- Re: [PATCH] fix race in mark_mounts_for_expiry()
- From: David Howells <[email protected]>
- Re: [PATCH] fix race in mark_mounts_for_expiry()
- From: David Howells <[email protected]>
- Re: [PATCH] fix race in mark_mounts_for_expiry()
- From: Miklos Szeredi <[email protected]>
- Re: [PATCH] fix race in mark_mounts_for_expiry()
- Prev by Date: Re: [PATCH] fix race in mark_mounts_for_expiry()
- Next by Date: Re: [PATCH -mm] x86 port lockless MCE quirky bank0
- Previous by thread: Re: [PATCH] fix race in mark_mounts_for_expiry()
- Next by thread: Re: [PATCH] fix race in mark_mounts_for_expiry()
- Index(es):