diff options
author | jeff <jeff@FreeBSD.org> | 2005-05-03 11:11:26 +0000 |
---|---|---|
committer | jeff <jeff@FreeBSD.org> | 2005-05-03 11:11:26 +0000 |
commit | d62d255d2ea2767f48fe126356b4d374c9fe5c9f (patch) | |
tree | e7c405360a92533611914356fd2cfc62c504f4e1 /sys/vm/vm_object.c | |
parent | 2b167167e26f6c1a9f95c7656d37b3c0465913e7 (diff) | |
download | FreeBSD-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.c | 1 |
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; |