From 95f8f1e08906224cb7baf7d920a0142b89d31df9 Mon Sep 17 00:00:00 2001 From: alfred Date: Sun, 4 Jul 2004 20:21:58 +0000 Subject: Pass the operation in with the fsidctl. Remove some fsidctls that we will not be using. Correct prototypes for fs sysctls. --- sys/kern/vfs_subr.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'sys/kern/vfs_subr.c') diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index 7e56575..a542c7c 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -3960,12 +3960,18 @@ sysctl_vfs_ctl(SYSCTL_HANDLER_ARGS) error = SYSCTL_IN(req, &vc, sizeof(vc)); if (error) return (error); - + if (vc.vc_vers != VFS_CTL_VERS1) + return (EINVAL); mp = vfs_getvfs(&vc.vc_fsid); if (mp == NULL) return (ENOENT); + /* ensure that a specific sysctl goes to the right filesystem. */ + if (strcmp(vc.vc_fstypename, "*") != 0 && + strcmp(vc.vc_fstypename, mp->mnt_vfc->vfc_name) != 0) { + return (EINVAL); + } VCTLTOREQ(&vc, req); - return (VFS_SYSCTL(mp, req)); + return (VFS_SYSCTL(mp, vc.vc_op, req)); } SYSCTL_PROC(_vfs, OID_AUTO, ctl, CTLFLAG_RD, -- cgit v1.1