Messages in this thread Patch in this message | | | Date | Sat, 18 Feb 2006 14:36:47 +0100 | From | Björn Steinbrink <> | Subject | Re: kjournald keeps reference to namespace |
| |
On 2006.02.18 02:35:47 +0100, Herbert Poetzl wrote: > > Hi Folks! > > when creating a private namespace (CLONE_NS) and > then mounting an ext3 filesystem, a new kernel > thread (kjournald) is created, which keeps a > reference to the namespace, which after the the > process exits, remains and blocks access to the > block device, as it is still bd_claim-ed. > > this leaves a private namespace behind and a > block device which cannot be opened exclusively. > unmount is not an option, as the namespace is > not longer reachable. > > this behaviour seems to be there since ever, > well since namespaces and kjournald exists :) > > the following 'cruel' hack 'solves' this issue
In daemonize() a new thread gets cleaned up and 'merged' with init_task. The current fs_struct is handled there, but not the current namespace. The following patch adds the namespace part.
Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de> ---
diff -NurpP --minimal linux-2.6.16-rc4/kernel/exit.c linux-2.6.16-rc4-ns/kernel/exit.c --- linux-2.6.16-rc4/kernel/exit.c 2006-02-18 13:59:59.000000000 +0100 +++ linux-2.6.16-rc4-ns/kernel/exit.c 2006-02-18 14:04:26.000000000 +0100 @@ -360,6 +360,8 @@ void daemonize(const char *name, ...) fs = init_task.fs; current->fs = fs; atomic_inc(&fs->count); + exit_namespace(current); + current->namespace = init_task.namespace; exit_files(current); current->files = init_task.files; atomic_inc(¤t->files->count); - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |