summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2001-07-27 15:52:49 +0000
committerpeter <peter@FreeBSD.org>2001-07-27 15:52:49 +0000
commit18bc463cb61ab140a748f3aa099e2d859eae1e37 (patch)
treef64a6e168e42d667b0b885494a5e0100dd869db5 /sys
parent220f54a23afdcdadd42dde676927752d08674e17 (diff)
downloadFreeBSD-src-18bc463cb61ab140a748f3aa099e2d859eae1e37.zip
FreeBSD-src-18bc463cb61ab140a748f3aa099e2d859eae1e37.tar.gz
Fix cut/paste blunder. Serves me right for doing a last minute tweak
to what I had for some time. Submitted by: bde
Diffstat (limited to 'sys')
-rw-r--r--sys/kern/kern_mib.c2
-rw-r--r--sys/kern/vfs_bio.c3
-rw-r--r--sys/kern/vfs_subr.c23
3 files changed, 24 insertions, 4 deletions
diff --git a/sys/kern/kern_mib.c b/sys/kern/kern_mib.c
index 157fa1a..df38fff 100644
--- a/sys/kern/kern_mib.c
+++ b/sys/kern/kern_mib.c
@@ -96,7 +96,7 @@ SYSCTL_INT(_kern, KERN_MAXPROC, maxproc, CTLFLAG_RD,
SYSCTL_INT(_kern, KERN_MAXPROCPERUID, maxprocperuid, CTLFLAG_RW,
&maxprocperuid, 0, "Maximum processes allowed per userid");
-SYSCTL_INT(_kern, KERN_MAXPROCPERUID, maxusers, CTLFLAG_RD,
+SYSCTL_INT(_kern, OID_AUTO, maxusers, CTLFLAG_RD,
&maxusers, 0, "Hint for kernel tuning");
SYSCTL_INT(_kern, KERN_ARGMAX, argmax, CTLFLAG_RD,
diff --git a/sys/kern/vfs_bio.c b/sys/kern/vfs_bio.c
index 94baa5a..7e69cdb 100644
--- a/sys/kern/vfs_bio.c
+++ b/sys/kern/vfs_bio.c
@@ -90,7 +90,6 @@ static void buf_daemon __P((void));
* but the code is intricate enough already.
*/
vm_page_t bogus_page;
-int vmiodirenable = FALSE;
int runningbufspace;
static vm_offset_t bogus_offset;
@@ -138,8 +137,6 @@ SYSCTL_INT(_vfs, OID_AUTO, getnewbufcalls, CTLFLAG_RW,
&getnewbufcalls, 0, "");
SYSCTL_INT(_vfs, OID_AUTO, getnewbufrestarts, CTLFLAG_RW,
&getnewbufrestarts, 0, "");
-SYSCTL_INT(_vfs, OID_AUTO, vmiodirenable, CTLFLAG_RW,
- &vmiodirenable, 0, "");
SYSCTL_INT(_vfs, OID_AUTO, bufdefragcnt, CTLFLAG_RW,
&bufdefragcnt, 0, "");
SYSCTL_INT(_vfs, OID_AUTO, buffreekvacnt, CTLFLAG_RW,
diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index b421902..46c97de 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -83,6 +83,10 @@ static void vclean __P((struct vnode *vp, int flags, struct proc *p));
static unsigned long numvnodes;
SYSCTL_LONG(_debug, OID_AUTO, numvnodes, CTLFLAG_RD, &numvnodes, 0, "");
+static int vmiodirenable = FALSE;
+SYSCTL_INT(_vfs, OID_AUTO, vmiodirenable, CTLFLAG_RW,
+ &vmiodirenable, 0, "");
+
/*
* Conversion tables for conversion from vnode types to inode formats
* and back.
@@ -2378,6 +2382,9 @@ loop:
if (vp->v_flag & VXLOCK) /* XXX: what if MNT_WAIT? */
continue;
+ if (vp->v_flag & VNOSYNC) /* unlinked, skip it */
+ continue;
+
if (flags != MNT_WAIT) {
if (VOP_GETVOBJECT(vp, &obj) != 0 ||
(obj->flags & OBJ_MIGHTBEDIRTY) == 0)
@@ -2787,6 +2794,22 @@ vn_isdisk(vp, errp)
}
/*
+ * Check if a vnode should be done with VMIO.
+ */
+int
+vn_canvmio(vp)
+ struct vnode *vp;
+{
+ if (!vp)
+ return (FALSE);
+ if (vp->v_type == VREG || (vmiodirenable && vp->v_type == VDIR))
+ return (TRUE);
+ if (vn_isdisk(vp, NULL))
+ return TRUE;
+ return FALSE;
+}
+
+/*
* Free data allocated by namei(); see namei(9) for details.
*/
void
OpenPOWER on IntegriCloud