Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 May 2016 10:16:03 +0000 (UTC)
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r300595 - head/sys/vm
Message-ID:  <201605241016.u4OAG3HR032329@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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))



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201605241016.u4OAG3HR032329>