From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <5d5626c858c99f5db078aa175c957102@plan9.bell-labs.com> From: David Presotto To: 9fans@cse.psu.edu Subject: Re: [9fans] Another namespace question In-Reply-To: <20030303174133.15491.qmail@mail.dirac.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="upas-bnwjqarqsmrxjckjjzlpmihklq" Date: Mon, 3 Mar 2003 13:14:34 -0500 Topicbox-Message-UUID: 77160d1e-eacb-11e9-9e20-41e7f4b1d025 This is a multi-part message in MIME format. --upas-bnwjqarqsmrxjckjjzlpmihklq Content-Disposition: inline Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit The easy answer is that it was easier to implement. The per-process mount table knows nothing about the hierarchical structure of the bindings. When you bind something, it is to a file, not to a path. If you later bind to something higher in the tree, we don't know enough to change the lower binding. I do think that (b) is confusing. --upas-bnwjqarqsmrxjckjjzlpmihklq Content-Type: message/rfc822 Content-Disposition: inline Received: from plan9.cs.bell-labs.com ([135.104.9.2]) by plan9; Mon Mar 3 12:44:18 EST 2003 Received: from mail.cse.psu.edu ([130.203.4.6]) by plan9; Mon Mar 3 12:44:16 EST 2003 Received: from psuvax1.cse.psu.edu (psuvax1.cse.psu.edu [130.203.6.6]) by mail.cse.psu.edu (CSE Mail Server) with ESMTP id A60F119ABF; Mon, 3 Mar 2003 12:44:05 -0500 (EST) Delivered-To: 9fans@cse.psu.edu Received: from mail.dirac.net (unknown [151.196.211.14]) by mail.cse.psu.edu (CSE Mail Server) with SMTP id 189E819AAF for <9fans@cse.psu.edu>; Mon, 3 Mar 2003 12:43:20 -0500 (EST) Received: (qmail 15492 invoked by uid 60001); 3 Mar 2003 17:41:33 -0000 Message-ID: <20030303174133.15491.qmail@mail.dirac.net> To: 9fans@cse.psu.edu From: Keith Nash Subject: [9fans] Another namespace question Sender: 9fans-admin@cse.psu.edu Errors-To: 9fans-admin@cse.psu.edu X-BeenThere: 9fans@cse.psu.edu X-Mailman-Version: 2.0.11 Precedence: bulk Reply-To: 9fans@cse.psu.edu List-Id: Fans of the OS Plan 9 from Bell Labs <9fans.cse.psu.edu> List-Archive: Date: 3 Mar 2003 17:41:33 -0000 This is a question about why namespaces were designed in the way that they were. The command bind path1 path2 where both path1 and path2 are directories, makes path2 a union directory consisting of path1 alone. So far, so good. Why was it decided that this command also does the following: (a) any union directory previously bound to path2 is automatically unmounted, and is found to have disappeared if the new union directory at path2 is unmounted (this is not the case for Lunix mount); *but*... (b) ...any union directory previously bound to a subdirectory of path2 is not unmounted. A possible reason for (a) is to clean up the namespace by removing binds that are invisible; but then why (b)? Keith. --upas-bnwjqarqsmrxjckjjzlpmihklq--