summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_object.c
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2005-05-03 11:11:26 +0000
committerjeff <jeff@FreeBSD.org>2005-05-03 11:11:26 +0000
commitd62d255d2ea2767f48fe126356b4d374c9fe5c9f (patch)
treee7c405360a92533611914356fd2cfc62c504f4e1 /sys/vm/vm_object.c
parent2b167167e26f6c1a9f95c7656d37b3c0465913e7 (diff)
downloadFreeBSD-src-d62d255d2ea2767f48fe126356b4d374c9fe5c9f.zip
FreeBSD-src-d62d255d2ea2767f48fe126356b4d374c9fe5c9f.tar.gz
- Add a new object flag "OBJ_NEEDSGIANT". We set this flag if the
underlying vnode requires Giant. - In vm_fault only acquire Giant if the underlying object has NEEDSGIANT set. - In vm_object_shadow inherit the NEEDSGIANT flag from the backing object.
Diffstat (limited to 'sys/vm/vm_object.c')
-rw-r--r--sys/vm/vm_object.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c
index ae01976..63078ff 100644
--- a/sys/vm/vm_object.c
+++ b/sys/vm/vm_object.c
@@ -1230,6 +1230,7 @@ vm_object_shadow(
length = PQ_L2_SIZE / 3 + PQ_PRIME1;
result->pg_color = (source->pg_color +
length * source->generation) & PQ_L2_MASK;
+ result->flags |= source->flags & OBJ_NEEDGIANT;
VM_OBJECT_UNLOCK(source);
next_index = (result->pg_color + PQ_L2_SIZE / 3 + PQ_PRIME1) &
PQ_L2_MASK;
OpenPOWER on IntegriCloud