Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 8 Jun 2001 13:01:28 -0400
From:      Alfred Perlstein <bright@rush.net>
To:        Peter Wemm <peter@wemm.org>
Cc:        tlambert2@mindspring.com, "Patrick W. Penzias Dirks" <pwd@apple.com>, FreeBSD-FS@FreeBSD.ORG, FreeBSD-Arch@FreeBSD.ORG
Subject:   Re: Support for pivot_root-like system call?
Message-ID:  <20010608130128.E1832@superconductor.rush.net>
In-Reply-To: <20010608153011.D7AF1380C@overcee.netplex.com.au>; from peter@wemm.org on Fri, Jun 08, 2001 at 08:30:11AM -0700
References:  <3B2096AB.309B2D14@mindspring.com> <20010608153011.D7AF1380C@overcee.netplex.com.au>

next in thread | previous in thread | raw e-mail | index | archive | help
* Peter Wemm <peter@wemm.org> [010608 11:30] wrote:
> Terry Lambert wrote:
> > "Patrick W. Penzias Dirks" wrote:
> > > 
> > > Hi,
> > > 
> > > I'm the filesystems tech lead in Apple's Mac OS X Core OS group.
> > > Prompted by the needs of, among others, virus protection software
> > > developers who want to be able to mount "on" the root directory to
> > > intercept ALL filesystem calls in the system, I'm contemplating
> > > implementation of a new system call in Mac OS X to do something like
> > > Linux's pivot_root system call:
> > > 
> > >         int pivot_root(const char *new_root, const char *put_old);
> > > 
> > > (which basically installs "new_root" as the new "/" [root_vnode] in
> > > the system and transfers the current root directory to the pathname
> > > specified my "put_old")
> > 
> > It doesn't work in FreeBSD proper because of cache coherency
> > bugs that have been around since 1995, but:
> > 
> > mount -t nullfs / /put_old # or wherever
> > mount -t <whatever> /
> > 
> > Would do what you want, I think.
> 
> Terry, the 'cache coherency' bugs have been fixed in -current for ~8
> months now (September 2000).  The infrastructure changes for this are
> subject to a call-for-review right now for a merge to 4.x. 

The cache coherency bugs are not fixed for all cases, being able to
ask the underlying filesystem for the vm_object does not solve the
problem.

What if i have a stacking layer where each page alternates
between two files that i'm stacked on top of?

Passing the vm_object back doesn't work for this.  Unless something
else has been done.

-Alfred Perlstein [alfred@freebsd.org]
Instead of asking why a piece of software is using "1970s technology,"
start asking why software is ignoring 30 years of accumulated wisdom.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-fs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010608130128.E1832>