diff options
author | Konstantin Belousov <kib@FreeBSD.org> | 2021-03-06 21:09:16 +0000 |
---|---|---|
committer | Konstantin Belousov <kib@FreeBSD.org> | 2021-03-12 11:31:08 +0000 |
commit | 44691b33cc99d0e17262368b6e0f64e531994a23 (patch) | |
tree | 333b2180e27528a8cc3191797c1886fbe0e43415 | |
parent | 0b3948e73b749b0fefc3f9d4fc61f356542bb9b9 (diff) | |
download | src-44691b33cc99d0e17262368b6e0f64e531994a23.tar.gz src-44691b33cc99d0e17262368b6e0f64e531994a23.zip |
vlrureclaim: only skip vnode with resident pages if it own the pages
Nullfs vnode which shares vm_object and pages with the lower vnode should
not be exempt from the reclaim just because lower vnode cached a lot.
Their reclamation is actually very cheap and should be preferred over
real fs vnodes, but this change is already useful.
Reported and tested by: pho
Reviewed by: mckusick
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks
Differential revision: https://reviews.freebsd.org/D29178
-rw-r--r-- | sys/kern/vfs_subr.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index c4772f691397..37e713ee48ea 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -1169,7 +1169,7 @@ restart: VI_LOCK(vp); if (vp->v_usecount > 0 || (!reclaim_nc_src && !LIST_EMPTY(&vp->v_cache_src)) || - (vp->v_object != NULL && + (vp->v_object != NULL && vp->v_object->handle == vp && vp->v_object->resident_page_count > trigger)) { VOP_UNLOCK(vp); vdropl(vp); |