cvs commit: src/usr.bin/fstat fstat.c src/sys/emulation/linux linux_misc.c linux_stats.c linux_util.c src/sys/kern imgact_elf.c init_main.c kern_acl.c kern_descrip.c kern_exec.c kern_jail.c kern_shutdown.c uipc_usrreq.c vfs_cache.c vfs_conf.c vfs_default.c ...
Matthew Dillon
dillon at crater.dragonflybsd.org
Thu Oct 26 22:03:37 PDT 2006
dillon 2006/10/26 21:56:34 PDT
DragonFly src repository
Modified files:
usr.bin/fstat fstat.c
sys/emulation/linux linux_misc.c linux_stats.c linux_util.c
sys/kern imgact_elf.c init_main.c kern_acl.c
kern_descrip.c kern_exec.c kern_jail.c
kern_shutdown.c uipc_usrreq.c vfs_cache.c
vfs_conf.c vfs_default.c vfs_jops.c
vfs_journal.c vfs_nlookup.c
vfs_syscalls.c vfs_vnops.c vfs_vopops.c
sys/sys file.h filedesc.h jail.h kern_syscall.h
mount.h namecache.h nlookup.h vfsops.h
vnode.h
sys/vfs/gnu/ext2fs ext2_vfsops.c
sys/vfs/hpfs hpfs_vfsops.c
sys/vfs/isofs/cd9660 cd9660_rrip.c cd9660_vfsops.c
sys/vfs/msdosfs msdosfs_vfsops.c
sys/vfs/nfs nfs_serv.c nfs_subs.c nfs_syscalls.c
nfs_vnops.c
sys/vfs/ntfs ntfs_vfsops.c
sys/vfs/nullfs null_vfsops.c null_vnops.c
sys/vfs/udf udf_vfsops.c
sys/vfs/ufs ffs_vfsops.c
sys/vfs/union union_vfsops.c
sys/vm vm_swap.c
Log:
Major namecache work primarily to support NULLFS.
* Move the nc_mount field out of the namecache{} record and use a new
namecache handle structure called nchandle { mount, ncp } for all
API accesses to the namecache.
* Remove all mount point linkages from the namecache topology. Each mount
now has its own namecache topology rooted at the root of the mount point.
Mount points are flagged in their underlying filesystem's namecache
topology but instead of linking the mount into the topology, the flag
simply triggers a mountlist scan to locate the mount. ".." is handled
the same way... when the root of a topology is encountered the scan
can traverse to the underlying filesystem via a field stored in the
mount structure.
* Ref the mount structure based on the number of nchandle structures
referencing it, and do not kfree() the mount structure during a forced
unmount if refs remain.
These changes have the following effects:
* Traversal across mount points no longer require locking of any sort,
preventing process blockages occuring in one mount from leaking across
a mount point to another mount.
* Aliased namespaces such as occurs with NULLFS no longer duplicate the
namecache topology of the underlying filesystem. Instead, a NULLFS
mount simply shares the underlying topology (differentiating between
it and the underlying topology by the fact that the name cache
handles { mount, ncp } contain NULLFS's mount pointer.
This saves an immense amount of memory and allows NULLFS to be used
heavily within a system without creating any adverse impact on kernel
memory or performance.
* Since the namecache topology for a NULLFS mount is shared with the
underyling mount, the namecache records are in fact the same records
and thus full coherency between the NULLFS mount and the underlying
filesystem is maintained by design.
* Future efforts, such as a unionfs or shadow fs implementation, now
have a mount structure to work with. The new API is a lot more
flexible then the old one.
Revision Changes Path
1.20 +13 -14 src/usr.bin/fstat/fstat.c
1.31 +1 -1 src/sys/emulation/linux/linux_misc.c
1.24 +2 -2 src/sys/emulation/linux/linux_stats.c
1.14 +2 -2 src/sys/emulation/linux/linux_util.c
1.43 +1 -1 src/sys/kern/imgact_elf.c
1.65 +6 -6 src/sys/kern/init_main.c
1.16 +4 -4 src/sys/kern/kern_acl.c
1.75 +11 -13 src/sys/kern/kern_descrip.c
1.48 +4 -4 src/sys/kern/kern_exec.c
1.13 +4 -4 src/sys/kern/kern_jail.c
1.40 +3 -6 src/sys/kern/kern_shutdown.c
1.30 +3 -3 src/sys/kern/uipc_usrreq.c
1.79 +440 -268 src/sys/kern/vfs_cache.c
1.21 +1 -1 src/sys/kern/vfs_conf.c
1.45 +63 -63 src/sys/kern/vfs_default.c
1.32 +26 -26 src/sys/kern/vfs_jops.c
1.29 +6 -8 src/sys/kern/vfs_journal.c
1.20 +117 -139 src/sys/kern/vfs_nlookup.c
1.107 +321 -283 src/sys/kern/vfs_syscalls.c
1.49 +27 -31 src/sys/kern/vfs_vnops.c
1.33 +29 -29 src/sys/kern/vfs_vopops.c
1.24 +4 -1 src/sys/sys/file.h
1.20 +6 -4 src/sys/sys/filedesc.h
1.8 +6 -1 src/sys/sys/jail.h
1.34 +2 -1 src/sys/sys/kern_syscall.h
1.30 +7 -1 src/sys/sys/mount.h
1.28 +38 -32 src/sys/sys/namecache.h
1.5 +13 -11 src/sys/sys/nlookup.h
1.27 +43 -43 src/sys/sys/vfsops.h
1.72 +3 -3 src/sys/sys/vnode.h
1.51 +1 -1 src/sys/vfs/gnu/ext2fs/ext2_vfsops.c
1.39 +1 -1 src/sys/vfs/hpfs/hpfs_vfsops.c
1.12 +1 -1 src/sys/vfs/isofs/cd9660/cd9660_rrip.c
1.42 +1 -1 src/sys/vfs/isofs/cd9660/cd9660_vfsops.c
1.42 +1 -1 src/sys/vfs/msdosfs/msdosfs_vfsops.c
1.41 +35 -35 src/sys/vfs/nfs/nfs_serv.c
1.43 +13 -15 src/sys/vfs/nfs/nfs_subs.c
1.27 +1 -1 src/sys/vfs/nfs/nfs_syscalls.c
1.67 +14 -14 src/sys/vfs/nfs/nfs_vnops.c
1.43 +1 -1 src/sys/vfs/ntfs/ntfs_vfsops.c
1.29 +34 -12 src/sys/vfs/nullfs/null_vfsops.c
1.28 +11 -11 src/sys/vfs/nullfs/null_vnops.c
1.24 +1 -1 src/sys/vfs/udf/udf_vfsops.c
1.51 +1 -1 src/sys/vfs/ufs/ffs_vfsops.c
1.28 +1 -1 src/sys/vfs/union/union_vfsops.c
1.31 +1 -1 src/sys/vm/vm_swap.c
http://www.dragonflybsd.org/cvsweb/src/usr.bin/fstat/fstat.c.diff?r1=1.19&r2=1.20&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/emulation/linux/linux_misc.c.diff?r1=1.30&r2=1.31&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/emulation/linux/linux_stats.c.diff?r1=1.23&r2=1.24&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/emulation/linux/linux_util.c.diff?r1=1.13&r2=1.14&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/imgact_elf.c.diff?r1=1.42&r2=1.43&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/init_main.c.diff?r1=1.64&r2=1.65&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_acl.c.diff?r1=1.15&r2=1.16&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_descrip.c.diff?r1=1.74&r2=1.75&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_exec.c.diff?r1=1.47&r2=1.48&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_jail.c.diff?r1=1.12&r2=1.13&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_shutdown.c.diff?r1=1.39&r2=1.40&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/uipc_usrreq.c.diff?r1=1.29&r2=1.30&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_cache.c.diff?r1=1.78&r2=1.79&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_conf.c.diff?r1=1.20&r2=1.21&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_default.c.diff?r1=1.44&r2=1.45&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_jops.c.diff?r1=1.31&r2=1.32&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_journal.c.diff?r1=1.28&r2=1.29&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_nlookup.c.diff?r1=1.19&r2=1.20&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_syscalls.c.diff?r1=1.106&r2=1.107&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_vnops.c.diff?r1=1.48&r2=1.49&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_vopops.c.diff?r1=1.32&r2=1.33&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/file.h.diff?r1=1.23&r2=1.24&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/filedesc.h.diff?r1=1.19&r2=1.20&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/jail.h.diff?r1=1.7&r2=1.8&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/kern_syscall.h.diff?r1=1.33&r2=1.34&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/mount.h.diff?r1=1.29&r2=1.30&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/namecache.h.diff?r1=1.27&r2=1.28&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/nlookup.h.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/vfsops.h.diff?r1=1.26&r2=1.27&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/vnode.h.diff?r1=1.71&r2=1.72&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/gnu/ext2fs/ext2_vfsops.c.diff?r1=1.50&r2=1.51&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hpfs/hpfs_vfsops.c.diff?r1=1.38&r2=1.39&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/isofs/cd9660/cd9660_rrip.c.diff?r1=1.11&r2=1.12&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/isofs/cd9660/cd9660_vfsops.c.diff?r1=1.41&r2=1.42&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/msdosfs/msdosfs_vfsops.c.diff?r1=1.41&r2=1.42&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nfs/nfs_serv.c.diff?r1=1.40&r2=1.41&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nfs/nfs_subs.c.diff?r1=1.42&r2=1.43&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nfs/nfs_syscalls.c.diff?r1=1.26&r2=1.27&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nfs/nfs_vnops.c.diff?r1=1.66&r2=1.67&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/ntfs/ntfs_vfsops.c.diff?r1=1.42&r2=1.43&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nullfs/null_vfsops.c.diff?r1=1.28&r2=1.29&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nullfs/null_vnops.c.diff?r1=1.27&r2=1.28&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/udf/udf_vfsops.c.diff?r1=1.23&r2=1.24&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/ufs/ffs_vfsops.c.diff?r1=1.50&r2=1.51&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/union/union_vfsops.c.diff?r1=1.27&r2=1.28&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vm/vm_swap.c.diff?r1=1.30&r2=1.31&f=u
More information about the Commits
mailing list