svn commit: r300595 - head/sys/vm
Konstantin Belousov
kib at FreeBSD.org
Tue May 24 10:16:04 UTC 2016
Author: kib
Date: Tue May 24 10:16:03 2016
New Revision: 300595
URL: https://svnweb.freebsd.org/changeset/base/300595
Log:
Remove Giant around allocation of the swap pager with non-NULL handle.
Existing issue of not protecting pager_object_list iteration in
vm_pager_object_lookup() by sw_alloc_mtx is not affected by Giant
removal.
Reviewed by: alc
Sponsored by: The FreeBSD Foundation
Modified:
head/sys/vm/swap_pager.c
Modified: head/sys/vm/swap_pager.c
==============================================================================
--- head/sys/vm/swap_pager.c Tue May 24 09:23:04 2016 (r300594)
+++ head/sys/vm/swap_pager.c Tue May 24 10:16:03 2016 (r300595)
@@ -604,7 +604,6 @@ swap_pager_alloc(void *handle, vm_ooffse
pindex = OFF_TO_IDX(offset + PAGE_MASK + size);
if (handle) {
- mtx_lock(&Giant);
/*
* Reference existing named region or allocate new one. There
* should not be a race here against swp_pager_meta_build()
@@ -617,7 +616,6 @@ swap_pager_alloc(void *handle, vm_ooffse
if (cred != NULL) {
if (!swap_reserve_by_cred(size, cred)) {
sx_xunlock(&sw_alloc_sx);
- mtx_unlock(&Giant);
return (NULL);
}
crhold(cred);
@@ -633,7 +631,6 @@ swap_pager_alloc(void *handle, vm_ooffse
VM_OBJECT_WUNLOCK(object);
}
sx_xunlock(&sw_alloc_sx);
- mtx_unlock(&Giant);
} else {
if (cred != NULL) {
if (!swap_reserve_by_cred(size, cred))
More information about the svn-src-all
mailing list