Skip site navigation (1)Skip section navigation (2)
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>