aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2025-12-16 05:32:37 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2025-12-17 03:40:31 +0000
commit30ae88e3b217b12476dba665d163ab0d8dd6a8a7 (patch)
treea489ee8f409919eba65885678748d81f763af929
parentbdfd695037a95b076aeffd04ed9fdf042b6ce218 (diff)
swap_pager_seek_data(): move the clipping at the object size to consumers
Reviewed by: alc, markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D54219
-rw-r--r--sys/fs/tmpfs/tmpfs_vnops.c2
-rw-r--r--sys/vm/swap_pager.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/sys/fs/tmpfs/tmpfs_vnops.c b/sys/fs/tmpfs/tmpfs_vnops.c
index 5082ee1ebdd0..341c88e19115 100644
--- a/sys/fs/tmpfs/tmpfs_vnops.c
+++ b/sys/fs/tmpfs/tmpfs_vnops.c
@@ -2091,6 +2091,8 @@ tmpfs_seek_data_locked(vm_object_t obj, off_t noff)
vm_pindex_t p;
p = swap_pager_seek_data(obj, OFF_TO_IDX(noff));
+ if (p == OBJ_MAX_SIZE)
+ p = obj->size;
return (p == OFF_TO_IDX(noff) ? noff : IDX_TO_OFF(p));
}
diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c
index 5e9a0ad94cb3..ab95bde34ceb 100644
--- a/sys/vm/swap_pager.c
+++ b/sys/vm/swap_pager.c
@@ -2479,8 +2479,6 @@ swap_pager_seek_data(vm_object_t object, vm_pindex_t pindex)
return (pages.index);
m = vm_radix_iter_step(&pages);
}
- if (swap_index == OBJ_MAX_SIZE)
- swap_index = object->size;
return (swap_index);
}