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))
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to