Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 8 Jan 1999 20:00:04 +0000 (GMT)
From:      Terry Lambert <tlambert@primenet.com>
To:        Don.Lewis@tsc.tdk.com (Don Lewis)
Cc:        tlambert@primenet.com, dillon@apollo.backplane.com, dyson@iquest.net, freebsd-hackers@FreeBSD.ORG
Subject:   Re: questions/problems with vm_fault() in Stable
Message-ID:  <199901082000.NAA23516@usr09.primenet.com>
In-Reply-To: <199901080355.TAA05878@salsa.gv.tsc.tdk.com> from "Don Lewis" at Jan 7, 99 07:55:58 pm

next in thread | previous in thread | raw e-mail | index | archive | help
> What if there is more than one underlying filesystem?
> 
> 	mount a FFS filesystem on /a
> 	mount an NFS filesystem on /a/b
> 	NULLFS mount /a on /n
> 
> For a VOP not defined for NULLFS, you want to use the FFS VOP for
> /n/c and the NFS VOP for /n/a/b/c

Mountpoint traversal isn't really a problem.

The bigger problem is with multiplexing (like union) and de-muxing
(like a nullfs exposure of a subdir).

I think these layers are synchronization points.

> } What does this mean for a stack of 500 NULLFS instances?
> } 
> } What it means is that for most VOPs (all VOPs, if the VFS architecture
> } wasn't currently screwed up by null_bypass and some ill-considered
> } direct references to NULLVPTOLOWERVP), the VOP's inhereit from the
> } bottom-most VFS!
> } 
> } It *also* means that the overhead in figuring this out occurs at
> } the time the VFS is instanced, *not* at runtime.
> 
> What happens if /a/b is mounted after /a is mounted on /n?

Mount point traversal is applied before semantic layer traversal.

A layer stacked on something that have a covered vnode applies
to the covering vnode.

Consider a stacking layer that puts an "x" in front of every file
name.  If you mount:

	mount FFS on /a
	mount NFS on /a/b
	"xing-FS" mount /a on /n

and each of the first two FS's has a file named "fred" in it, then you
see:

	/a/fred
	/a/b/fred
	/n/xfred
	/n/b/xfred (/or /n/xb/xfred, if directories are files 8-))

If, instead, you mount:

	mount FFS on /a
	"xing-FS" mount /a on /n
	mount NFS on /n/b

then you see:
	
	/a/fred
	no /a/b/fred
	/n/xfred
	/n/b/fred


					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.

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?199901082000.NAA23516>