aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMateusz Guzik <mjg@FreeBSD.org>2022-08-07 13:05:47 +0000
committerMateusz Guzik <mjg@FreeBSD.org>2023-03-11 11:08:21 +0000
commit73b951cd39148accf768d01344a752c377ea4475 (patch)
tree64a0bbfc412ca4e4486fd0928daea45c284a9f75
parent44b31d37ad2bf02dbfe511f986c4c053191ddeca (diff)
downloadsrc-73b951cd39148accf768d01344a752c377ea4475.tar.gz
src-73b951cd39148accf768d01344a752c377ea4475.zip
vm: move up object lock asserts in fault functions
No functional changes. Reviewed by: kib Reviewed by: markj Tested by: pho Differential Revision: https://reviews.freebsd.org/D38964
-rw-r--r--sys/vm/vm_fault.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c
index 336cee7ca972..2afe5a19d2d7 100644
--- a/sys/vm/vm_fault.c
+++ b/sys/vm/vm_fault.c
@@ -1047,6 +1047,8 @@ vm_fault_next(struct faultstate *fs)
{
vm_object_t next_object;
+ VM_OBJECT_ASSERT_WLOCKED(fs->object);
+
/*
* The requested page does not exist at this object/
* offset. Remove the invalid page from the object,
@@ -1067,7 +1069,6 @@ vm_fault_next(struct faultstate *fs)
* Move on to the next object. Lock the next object before
* unlocking the current one.
*/
- VM_OBJECT_ASSERT_WLOCKED(fs->object);
next_object = fs->object->backing_object;
if (next_object == NULL)
return (false);
@@ -1382,6 +1383,8 @@ vm_fault_object(struct faultstate *fs, int *behindp, int *aheadp)
enum fault_status res;
bool dead;
+ VM_OBJECT_ASSERT_WLOCKED(fs->object);
+
/*
* If the object is marked for imminent termination, we retry
* here, since the collapse pass has raced with us. Otherwise,
@@ -1416,7 +1419,6 @@ vm_fault_object(struct faultstate *fs, int *behindp, int *aheadp)
return (FAULT_SOFT);
}
}
- VM_OBJECT_ASSERT_WLOCKED(fs->object);
/*
* Page is not resident. If the pager might contain the page