Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750704AbWBRBft (ORCPT ); Fri, 17 Feb 2006 20:35:49 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1750706AbWBRBft (ORCPT ); Fri, 17 Feb 2006 20:35:49 -0500 Received: from MAIL.13thfloor.at ([212.16.62.50]:65434 "EHLO mail.13thfloor.at") by vger.kernel.org with ESMTP id S1750704AbWBRBfs (ORCPT ); Fri, 17 Feb 2006 20:35:48 -0500 Date: Sat, 18 Feb 2006 02:35:47 +0100 From: Herbert Poetzl To: Andrew Morton , Al Viro Cc: Linux Kernel ML Subject: kjournald keeps reference to namespace Message-ID: <20060218013547.GA32706@MAIL.13thfloor.at> Mail-Followup-To: Andrew Morton , Al Viro , Linux Kernel ML Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.6i Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1503 Lines: 54 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 best, Herbert --- fs/jbd/journal.c.orig 2006-01-03 17:29:56 +0100 +++ fs/jbd/journal.c 2006-02-18 02:23:21 +0100 @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -116,6 +117,13 @@ static int kjournald(void *arg) struct timer_list timer; daemonize("kjournald"); + { + struct namespace *ns = current->namespace; + + current->namespace = NULL; + put_namespace(ns); + } + /* Set up an interval timer which can be used to trigger a commit wakeup after the commit interval expires */ - 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/