Remove the last bits of code that stored mount point linkages in vnodes.
authorMatthew Dillon <dillon@dragonflybsd.org>
Tue, 19 Sep 2006 16:06:17 +0000 (16:06 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Tue, 19 Sep 2006 16:06:17 +0000 (16:06 +0000)
commit1d505369889c9cd3df3408b0d3c67a9f84f61491
treed9ca8d2628dd978d8573823e8ce03ba9b052f245
parentbb3cd9518721986ad148e543a0f97d97ab5a5c9f
Remove the last bits of code that stored mount point linkages in vnodes.
Mount point linkages are now ENTIRELY a function of the namecache topology,
made possible by DragonFly's advanced namecache.

This fixes a number of problems with NULLFS and adds two major features to
our NULLFS mounting capabilities.

NULLFS mounting paths NO LONGER NEED TO BE DISTINCT.  For example, you
can now safely do things like 'mount_null -o ro / /fubar/jail1' without
creating a recursion and you can now create SUB-MOUNTS within nullfs
mounts, such as 'mount_null -o ro /usr /fubar/jail1/usr', without creating
problems in the original master partitions.

The result is that NULLFS can now be used to glue arbitrary pieces of
filesystems together using a mixture of read-only and read-write NULLFS
mounts for situations where localhost NFS mounts had to be used before.
Jail or chroot construction is now utterly trivial.

With-input-from: Joerg Sonnenberger <joerg@britannica.bec.de>
13 files changed:
sbin/mount_null/mount_null.c
sys/kern/vfs_bio.c
sys/kern/vfs_cache.c
sys/kern/vfs_mount.c
sys/kern/vfs_nlookup.c
sys/kern/vfs_syscalls.c
sys/sys/mount.h
sys/sys/namecache.h
sys/sys/vnode.h
sys/vfs/nfs/nfs_serv.c
sys/vfs/nfs/nfs_vfsops.c
sys/vfs/ufs/ufs_vnops.c
sys/vfs/union/union_vfsops.c