看板 DFBSD_commit 關於我們 聯絡資訊
dillon 2005/04/19 10:54:52 PDT DragonFly src repository Modified files: sys/kern init_main.c kern_shutdown.c vfs_cache.c vfs_conf.c vfs_mount.c vfs_nlookup.c vfs_subr.c vfs_sync.c vfs_syscalls.c sys/sys mount.h sys/vfs/coda coda_vfsops.c sys/vfs/gnu/ext2fs ext2_vfsops.c sys/vfs/nfs nfs_nqlease.c sys/vfs/ntfs ntfs_vfsops.c sys/vfs/ufs ffs_softdep.c ufs_vfsops.c sys/vfs/union union_vnops.c Log: Abstract out the routines which manipulate the mountlist. Introduce an MP-safe mountlist scanning function. This function keeps track of scans which are in-progress and properly handles ripouts that occur during the callback by advancing the matching pointers being tracked. The callback can safely block without confusing the scan. This algorithm has already been successfully used for the buffer cache and will soon be used for the vnode lists hanging off the mount point. Revision Changes Path 1.41 +1 -1 src/sys/kern/init_main.c 1.19 +1 -2 src/sys/kern/kern_shutdown.c 1.54 +1 -1 src/sys/kern/vfs_cache.c 1.13 +1 -5 src/sys/kern/vfs_conf.c 1.9 +197 -33 src/sys/kern/vfs_mount.c 1.11 +2 -2 src/sys/kern/vfs_nlookup.c 1.55 +42 -107 src/sys/kern/vfs_subr.c 1.5 +1 -5 src/sys/kern/vfs_sync.c 1.61 +122 -109 src/sys/kern/vfs_syscalls.c 1.19 +16 -3 src/sys/sys/mount.h 1.21 +30 -11 src/sys/vfs/coda/coda_vfsops.c 1.28 +1 -1 src/sys/vfs/gnu/ext2fs/ext2_vfsops.c 1.25 +22 -23 src/sys/vfs/nfs/nfs_nqlease.c 1.27 +1 -4 src/sys/vfs/ntfs/ntfs_vfsops.c 1.23 +23 -5 src/sys/vfs/ufs/ffs_softdep.c 1.10 +1 -1 src/sys/vfs/ufs/ufs_vfsops.c 1.20 +1 -1 src/sys/vfs/union/union_vnops.c http://www.dragonflybsd.org/cvsweb/src/sys/kern/init_main.c.diff?r1=1.40&r2=1.41&f=u http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_shutdown.c.diff?r1=1.18&r2=1.19&f=u http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_cache.c.diff?r1=1.53&r2=1.54&f=u http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_conf.c.diff?r1=1.12&r2=1.13&f=u http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_mount.c.diff?r1=1.8&r2=1.9&f=u http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_nlookup.c.diff?r1=1.10&r2=1.11&f=u http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_subr.c.diff?r1=1.54&r2=1.55&f=u http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_sync.c.diff?r1=1.4&r2=1.5&f=u http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_syscalls.c.diff?r1=1.60&r2=1.61&f=u http://www.dragonflybsd.org/cvsweb/src/sys/sys/mount.h.diff?r1=1.18&r2=1.19&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/coda/coda_vfsops.c.diff?r1=1.20&r2=1.21&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/gnu/ext2fs/ext2_vfsops.c.diff?r1=1.27&r2=1.28&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nfs/nfs_nqlease.c.diff?r1=1.24&r2=1.25&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/ntfs/ntfs_vfsops.c.diff?r1=1.26&r2=1.27&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/ufs/ffs_softdep.c.diff?r1=1.22&r2=1.23&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/ufs/ufs_vfsops.c.diff?r1=1.9&r2=1.10&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/union/union_vnops.c.diff?r1=1.19&r2=1.20&f=u