diff options
author | Konstantin Belousov <kib@FreeBSD.org> | 2020-08-16 20:52:24 +0000 |
---|---|---|
committer | Konstantin Belousov <kib@FreeBSD.org> | 2020-08-16 20:52:24 +0000 |
commit | 419e5698a02370f3aab9f2b096361123410aac65 (patch) | |
tree | c4bf72d769ca22a3f70f1a8d0d7556e3b3f691f9 /sys/vm/vnode_pager.c | |
parent | 37f253ed0ff80cd6a0937859a4c3c80c256f6d61 (diff) |
Atomically update vm_object vnp_size, where atomic is available.
This will be used later, where it matters on 32bit arches.
Reviewed by: markj
Tested by: pho
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D25968
Notes
Notes:
svn path=/head/; revision=364285
Diffstat (limited to 'sys/vm/vnode_pager.c')
-rw-r--r-- | sys/vm/vnode_pager.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c index 0a1518e94a24..f10153235b30 100644 --- a/sys/vm/vnode_pager.c +++ b/sys/vm/vnode_pager.c @@ -520,7 +520,11 @@ vnode_pager_setsize(struct vnode *vp, vm_ooffset_t nsize) vm_page_xunbusy(m); } out: +#if defined(__powerpc__) && !defined(__powerpc64__) object->un_pager.vnp.vnp_size = nsize; +#else + atomic_store_64(&object->un_pager.vnp.vnp_size, nsize); +#endif object->size = nobjsize; VM_OBJECT_WUNLOCK(object); } |