From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <8fd9ce77c40c8069aef69fa88b7d9841@vitanuova.com> To: 9fans@cse.psu.edu Subject: Re: [9fans] tip o' the day Date: Tue, 15 Feb 2005 17:21:58 +0000 From: rog@vitanuova.com In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Topicbox-Message-UUID: 4860baac-eace-11e9-9e20-41e7f4b1d025 > Yes. I copy mntgen from source and I can see my files ;-) But if I > run "local 9fs unixbox" first and then "local bind -c > /n/unixbox/foo/bar /n/bar" works. yes, that'll work because the namespace is being changed locally to mntgen. your previous example was failing to work because the mount was in your current namespace - through the exportfs "window". the mount worked ok, but exportfs didn't keep the reference to the mount-point around, so mntgen removed the new directory. the next time the mount point was created by mntgen, it was given a new qid, and since the kernel uses qids to index its mount table, it wasn't finding your mount point. the change i made to mntgen was always to generate the same qid for a given name; hence although mntgen does delete the name, at least anything mounted on it will still be visible when it's created again. the real fix (i think) is to allow fds to refer to non-open files in the plan 9 syscall interface (hence allowing exportfs to retain a reference to walked-to directories without opening them), but that's a significant change, hence unlikely to happen. i'm sure you didn't want to know that! cheers, rog.