summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/vm/vm_as.c
diff options
context:
space:
mode:
authornr123932 <none@none>2007-03-30 01:55:41 -0700
committernr123932 <none@none>2007-03-30 01:55:41 -0700
commit8548bf79039833dba8615afdf63258b2cb122121 (patch)
treec9d7f506296f12858a99b42d94bda969bb1a4ebc /usr/src/uts/common/vm/vm_as.c
parent3a62633b4e364efc25704bee4e40b1107709521e (diff)
downloadillumos-gate-8548bf79039833dba8615afdf63258b2cb122121.tar.gz
6368753 Need a patch solution to 4522909 automountd hangs with executeable maps
6509943 Apparent deadlock between fork()'s use of lwp_suspend and NFS locking (Backout 4522909)
Diffstat (limited to 'usr/src/uts/common/vm/vm_as.c')
-rw-r--r--usr/src/uts/common/vm/vm_as.c27
1 files changed, 8 insertions, 19 deletions
diff --git a/usr/src/uts/common/vm/vm_as.c b/usr/src/uts/common/vm/vm_as.c
index 801e55659c..42df064cc2 100644
--- a/usr/src/uts/common/vm/vm_as.c
+++ b/usr/src/uts/common/vm/vm_as.c
@@ -19,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -878,10 +878,8 @@ retry:
* for a pagefault. This is to avoid deadlock while debugging
* a process via /proc over NFS (in particular).
*/
- if (lwp != NULL) {
+ if (lwp != NULL)
lwp->lwp_nostop++;
- lwp->lwp_nostop_r++;
- }
/*
* same length must be used when we softlock and softunlock.
@@ -959,10 +957,8 @@ retry:
seg = as_segat(as, raddr);
if (seg == NULL) {
AS_LOCK_EXIT(as, &as->a_lock);
- if ((lwp != NULL) && (!is_xhat)) {
+ if ((lwp != NULL) && (!is_xhat))
lwp->lwp_nostop--;
- lwp->lwp_nostop_r--;
- }
return (FC_NOMAP);
}
@@ -1042,10 +1038,9 @@ retry:
}
if (as_lock_held)
AS_LOCK_EXIT(as, &as->a_lock);
- if ((lwp != NULL) && (!is_xhat)) {
+ if ((lwp != NULL) && (!is_xhat))
lwp->lwp_nostop--;
- lwp->lwp_nostop_r--;
- }
+
/*
* If the lower levels returned EDEADLK for a fault,
* It means that we should retry the fault. Let's wait
@@ -1083,10 +1078,8 @@ retry:
* for a pagefault. This is to avoid deadlock while debugging
* a process via /proc over NFS (in particular).
*/
- if (lwp != NULL) {
+ if (lwp != NULL)
lwp->lwp_nostop++;
- lwp->lwp_nostop_r++;
- }
raddr = (caddr_t)((uintptr_t)addr & (uintptr_t)PAGEMASK);
rsize = (((size_t)(addr + size) + PAGEOFFSET) & PAGEMASK) -
@@ -1096,10 +1089,8 @@ retry:
seg = as_segat(as, raddr);
if (seg == NULL) {
AS_LOCK_EXIT(as, &as->a_lock);
- if (lwp != NULL) {
+ if (lwp != NULL)
lwp->lwp_nostop--;
- lwp->lwp_nostop_r--;
- }
return (FC_NOMAP);
}
@@ -1116,10 +1107,8 @@ retry:
break;
}
AS_LOCK_EXIT(as, &as->a_lock);
- if (lwp != NULL) {
+ if (lwp != NULL)
lwp->lwp_nostop--;
- lwp->lwp_nostop_r--;
- }
/*
* If the lower levels returned EDEADLK for a fault,
* It means that we should retry the fault. Let's wait