diff options
author | ssouhlal <ssouhlal@FreeBSD.org> | 2005-08-08 22:44:10 +0000 |
---|---|---|
committer | ssouhlal <ssouhlal@FreeBSD.org> | 2005-08-08 22:44:10 +0000 |
commit | 871cf7b33c81323ad25d44edcd68beb463c02b17 (patch) | |
tree | ed43c8f9d4f21a53ed3c7ed356d9cbefefa40e13 | |
parent | 56add66791f37f1298fe3ba4d432b3598902e60a (diff) | |
download | FreeBSD-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.c | 6 |
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; |