From owner-cvs-all Tue Nov 10 01:04:12 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id BAA29001 for cvs-all-outgoing; Tue, 10 Nov 1998 01:04:12 -0800 (PST) (envelope-from owner-cvs-all@FreeBSD.ORG) Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id BAA28991; Tue, 10 Nov 1998 01:04:09 -0800 (PST) (envelope-from peter@FreeBSD.org) From: Peter Wemm Received: (from peter@localhost) by freefall.freebsd.org (8.8.8/8.8.5) id BAA27855; Tue, 10 Nov 1998 01:04:10 -0800 (PST) Date: Tue, 10 Nov 1998 01:04:10 -0800 (PST) Message-Id: <199811100904.BAA27855@freefall.freebsd.org> To: cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG Subject: cvs commit: src/sys/kern vfs_default.c vfs_init.c vnode_if.sh src/sys/sys mount.h vnode.h Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk peter 1998/11/10 01:04:10 PST Modified files: sys/kern vfs_default.c vfs_init.c vnode_if.sh sys/sys mount.h vnode.h Log: Make the vnode opv vector construction fully dynamic. Previously we leaked memory on each unload and were limited to items referenced in the kernel copy of vnode_if.c. Now a kernel module is free to create it's own VOP_FOO() routines and the rest of the system will happily deal with it, including passthrough layers like union/umap/etc. Have VFS_SET() call a common vfs_modevent() handler rather than inline duplicating the common code all over the place. Have VNODEOP_SET() have the vnodeops removed at unload time (assuming a module) so that the vop_t ** vector is reclaimed. Slightly adjust the vop_t ** vectors so that calling slot 0 is a panic rather than a page fault. This could happen if VOP_something() was called without *any* handlers being present anywhere (including in vfs_default.c). slot 1 becomes the default vector for the vnodeop table. TODO: reclaim zones on unload (eg: nfs code) Revision Changes Path 1.16 +7 -0 src/sys/kern/vfs_default.c 1.39 +223 -125 src/sys/kern/vfs_init.c 1.16 +2 -38 src/sys/kern/vnode_if.sh 1.72 +15 -37 src/sys/sys/mount.h 1.78 +6 -4 src/sys/sys/vnode.h To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message