summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorssouhlal <ssouhlal@FreeBSD.org>2005-08-08 22:44:10 +0000
committerssouhlal <ssouhlal@FreeBSD.org>2005-08-08 22:44:10 +0000
commit871cf7b33c81323ad25d44edcd68beb463c02b17 (patch)
treeed43c8f9d4f21a53ed3c7ed356d9cbefefa40e13
parent56add66791f37f1298fe3ba4d432b3598902e60a (diff)
downloadFreeBSD-src-871cf7b33c81323ad25d44edcd68beb463c02b17.zip
FreeBSD-src-871cf7b33c81323ad25d44edcd68beb463c02b17.tar.gz
Use atomic operations on runningbufspace.
PR: kern/84318 Submitted by: ade MFC after: 3 days
-rw-r--r--sys/vm/vnode_pager.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c
index ee7a783..f12bb35 100644
--- a/sys/vm/vnode_pager.c
+++ b/sys/vm/vnode_pager.c
@@ -65,6 +65,8 @@ __FBSDID("$FreeBSD$");
#include <sys/conf.h>
#include <sys/sf_buf.h>
+#include <machine/atomic.h>
+
#include <vm/vm.h>
#include <vm/vm_object.h>
#include <vm/vm_page.h>
@@ -546,7 +548,7 @@ vnode_pager_input_smlfs(object, m)
bp->b_bcount = bsize;
bp->b_bufsize = bsize;
bp->b_runningbufspace = bp->b_bufsize;
- runningbufspace += bp->b_runningbufspace;
+ atomic_add_int(&runningbufspace, bp->b_runningbufspace);
/* do the input */
bp->b_iooffset = dbtob(bp->b_blkno);
@@ -898,7 +900,7 @@ vnode_pager_generic_getpages(vp, m, bytecount, reqpage)
bp->b_bcount = size;
bp->b_bufsize = size;
bp->b_runningbufspace = bp->b_bufsize;
- runningbufspace += bp->b_runningbufspace;
+ atomic_add_int(&runningbufspace, bp->b_runningbufspace);
cnt.v_vnodein++;
cnt.v_vnodepgsin += count;
OpenPOWER on IntegriCloud