Date: Thu, 14 Nov 2002 14:11:37 -0800 (PST) From: Matthew Dillon <dillon@apollo.backplane.com> To: Terry Lambert <tlambert2@mindspring.com> Cc: Cameron Grant <gandalf@vilnya.demon.co.uk>, freebsd-hackers@freebsd.org, "Daniel O'Connor" <doconnor@gsoft.com.au>, Hans Zaunere <zaunere@yahoo.com> Subject: Re: Patch #6 (Re: Shared files within a jail) Message-ID: <200211142211.gAEMBbfe067878@apollo.backplane.com> 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> <3DD3FC96.8420F54C@mindspring.com>
next in thread | previous in thread | raw e-mail | index | archive | help
: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
Hmm. That might just work since unionfs (with the patch) doesn't
try to cache non-regular vnodes, and (nullfs doesn't try to
cache anything). It would allow us to call addalias() and track
v_rdev (though there might be a problem with sequencing since
calling addalias while still holding lowervp or uppervp temporarily
bump the count above 1 and possibly confuse the device driver into
believing that the device has been opened when it may not have been).
Unionfs and nullfs would still have to be aware of all the special
vnode types.
-Matt
Matthew Dillon
<dillon@backplane.com>
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200211142211.gAEMBbfe067878>
