diff options
author | alc <alc@FreeBSD.org> | 2002-08-24 18:44:52 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2002-08-24 18:44:52 +0000 |
commit | c7f77c221c37ee1b8b8ff2a8fb2e17384cca4582 (patch) | |
tree | fb72538710031759af9932fed87e4bbab9add95b /sys/vm/vm_object.c | |
parent | 4fe20ff3d2bff5b6b6c25b05758cf52cfdd364dc (diff) | |
download | FreeBSD-src-c7f77c221c37ee1b8b8ff2a8fb2e17384cca4582.zip FreeBSD-src-c7f77c221c37ee1b8b8ff2a8fb2e17384cca4582.tar.gz |
o Use vm_object_lock() in place of directly locking Giant.
Reviewed by: md5
Diffstat (limited to 'sys/vm/vm_object.c')
-rw-r--r-- | sys/vm/vm_object.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c index 2490f19..06e79a5 100644 --- a/sys/vm/vm_object.c +++ b/sys/vm/vm_object.c @@ -378,7 +378,7 @@ vm_object_reference(vm_object_t object) if (object == NULL) return; - mtx_lock(&Giant); + vm_object_lock(object); #if 0 /* object can be re-referenced during final cleaning */ KASSERT(!(object->flags & OBJ_DEAD), @@ -391,7 +391,7 @@ vm_object_reference(vm_object_t object) printf("vm_object_reference: delay in getting object\n"); } } - mtx_unlock(&Giant); + vm_object_unlock(object); } /* @@ -1025,7 +1025,7 @@ vm_object_madvise(vm_object_t object, vm_pindex_t pindex, int count, int advise) if (object == NULL) return; - mtx_lock(&Giant); + vm_object_lock(object); end = pindex + count; @@ -1113,7 +1113,7 @@ shadowlookup: if (advise == MADV_FREE && tobject->type == OBJT_SWAP) swap_pager_freespace(tobject, tpindex, 1); } - mtx_unlock(&Giant); + vm_object_unlock(object); } /* @@ -1137,7 +1137,7 @@ vm_object_shadow( source = *object; - mtx_lock(&Giant); + vm_object_lock(source); /* * Don't create the new object if the old object isn't shared. */ @@ -1146,7 +1146,7 @@ vm_object_shadow( source->handle == NULL && (source->type == OBJT_DEFAULT || source->type == OBJT_SWAP)) { - mtx_unlock(&Giant); + vm_object_unlock(source); return; } @@ -1194,7 +1194,7 @@ vm_object_shadow( *offset = 0; *object = result; - mtx_unlock(&Giant); + vm_object_unlock(source); } /* @@ -1837,10 +1837,10 @@ vm_object_coalesce(vm_object_t prev_object, vm_pindex_t prev_pindex, if (prev_object == NULL) return (TRUE); - mtx_lock(&Giant); + vm_object_lock(prev_object); if (prev_object->type != OBJT_DEFAULT && prev_object->type != OBJT_SWAP) { - mtx_unlock(&Giant); + vm_object_unlock(prev_object); return (FALSE); } @@ -1855,7 +1855,7 @@ vm_object_coalesce(vm_object_t prev_object, vm_pindex_t prev_pindex, * pages not mapped to prev_entry may be in use anyway) */ if (prev_object->backing_object != NULL) { - mtx_unlock(&Giant); + vm_object_unlock(prev_object); return (FALSE); } @@ -1865,7 +1865,7 @@ vm_object_coalesce(vm_object_t prev_object, vm_pindex_t prev_pindex, if ((prev_object->ref_count > 1) && (prev_object->size != next_pindex)) { - mtx_unlock(&Giant); + vm_object_unlock(prev_object); return (FALSE); } @@ -1888,7 +1888,7 @@ vm_object_coalesce(vm_object_t prev_object, vm_pindex_t prev_pindex, if (next_pindex + next_size > prev_object->size) prev_object->size = next_pindex + next_size; - mtx_unlock(&Giant); + vm_object_unlock(prev_object); return (TRUE); } |