From owner-freebsd-hackers Thu Nov 14 11:43:48 2002 Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4B51737B401 for ; Thu, 14 Nov 2002 11:43:47 -0800 (PST) Received: from harrier.mail.pas.earthlink.net (harrier.mail.pas.earthlink.net [207.217.120.12]) by mx1.FreeBSD.org (Postfix) with ESMTP id CA1FF43E3B for ; Thu, 14 Nov 2002 11:43:46 -0800 (PST) (envelope-from tlambert2@mindspring.com) Received: from pool0276.cvx21-bradley.dialup.earthlink.net ([209.179.193.21] helo=mindspring.com) by harrier.mail.pas.earthlink.net with esmtp (Exim 3.33 #1) id 18CPtq-0002Uc-00; Thu, 14 Nov 2002 11:43:38 -0800 Message-ID: <3DD3FC96.8420F54C@mindspring.com> Date: Thu, 14 Nov 2002 11:42:14 -0800 From: Terry Lambert X-Mailer: Mozilla 4.79 [en] (Win98; U) X-Accept-Language: en MIME-Version: 1.0 To: Matthew Dillon Cc: Cameron Grant , freebsd-hackers@freebsd.org, Daniel O'Connor , Hans Zaunere Subject: Re: Patch #6 (Re: Shared files within a jail) References: <20021113034726.75787.qmail@web12801.mail.yahoo.com> <1037159767.66058.34.camel@chowder.localdomain> <200211130530.gAD5UxNt067928@apollo.backplane.com> <3DD1FAB9.82607C41@mindspring.com> <200211131114.gADBE3lM069566@apollo.backplane.com> <3DD2DF3A.18489E80@mindspring.com> <200211132358.gADNwAVP012795@apollo.backplane.com> <200211141929.gAEJTQcl067196@apollo.backplane.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Matthew Dillon wrote: > So this patch is a hack. It returns special devices directly whenever > possible but must still synthesize temporary vnodes for them for > RENAME and DELETE operations. But short of rewriting a big chunk of > the device tracking infrastructure there is no other solution. If you are going to do that, why not just add: static vop_t **nullfs_specop_p; static struct vnodeopv_entry_desc nullfs_specop_entries[] = { ... }; static struct vnodeopv_desc fs_specop_opv_desc = { &nullfs_specop_p, nullfs_specop_entries }; VNODEOP_SET(nullfs_specop_opv_desc); ??? That way the devices get exported directly (still), but the rename, delete, and other code can be left alone. It's really ugly to think of a "nullfs" doing this, though, so I guess it's sixes on which approach is used. Told you it was crufty. 8-(. -- Terry To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message