From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Newall Subject: Re: [RFC PATCH 0/5] Shadow directories Date: Fri, 19 Oct 2007 06:07:45 +0930 Message-ID: <4717C419.8060602@davidnewall.com> References: <200710181721.09201.jara@sin.cvut.cz> <200710181907.58643.jara@sin.cvut.cz> <4717BBBB.6040205@davidnewall.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Jan Engelhardt , linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org To: jaroslav.sykora@gmail.com Return-path: Received: from hawking.rebel.net.au ([203.20.69.83]:33711 "EHLO hawking.rebel.net.au" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754699AbXJRUhs (ORCPT ); Thu, 18 Oct 2007 16:37:48 -0400 In-Reply-To: <4717BBBB.6040205@davidnewall.com> Sender: linux-fsdevel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org Jaroslav Sykora wrote: > If anybody can think of any other solution of the "redirector problem", possibly > even non-kernel based one, let me know and I'd be glad :-) If I understand your problem, you wish to treat an archive file as if it was a directory. Thus, in the ideal situation, you could do the following: cat hello.zip/hello.c gcc hello.zip/hello.c -o hello etc.. Rather than complicate matters with a second tree, use FUSE with an explicit directory. For example, ~/expand could be your shadow, thus to compile hello.c from ~/hello.zip: gcc ~/expand/hello.zip^/hello.c -o hello I think no kernel change would be required. I'm not keen on the caret. One of the early claims made in http://lwn.net/Articles/100148/ is: > Another branch, led by Al Viro, worries about the locking > considerations of this whole scheme. Linux, like most Unix systems, > has never allowed hard links to directories for a number of reasons; The claim is wrong. UNIX systems have traditionally allowed the superuser to create hard links to directories. See link(2) for 2.10BSD . Having got that wrong throws doubt on the argument; perhaps a path can simultaneously be a file and a directory.