aboutsummaryrefslogtreecommitdiffstats
path: root/module/os/freebsd/zfs/zfs_vnops.c
diff options
context:
space:
mode:
Diffstat (limited to 'module/os/freebsd/zfs/zfs_vnops.c')
-rw-r--r--module/os/freebsd/zfs/zfs_vnops.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/module/os/freebsd/zfs/zfs_vnops.c b/module/os/freebsd/zfs/zfs_vnops.c
index cf684222b..6698e3655 100644
--- a/module/os/freebsd/zfs/zfs_vnops.c
+++ b/module/os/freebsd/zfs/zfs_vnops.c
@@ -5749,10 +5749,13 @@ zfs_freebsd_need_inactive(struct vop_need_inactive_args *ap)
vnode_t *vp = ap->a_vp;
znode_t *zp = VTOZ(vp);
zfsvfs_t *zfsvfs = zp->z_zfsvfs;
- bool need;
+ int need;
+
+ if (vn_need_pageq_flush(vp))
+ return (1);
if (!rw_tryenter(&zfsvfs->z_teardown_inactive_lock, RW_READER))
- return (true);
+ return (1);
need = (zp->z_sa_hdl == NULL || zp->z_unlinked || zp->z_atime_dirty);
rw_exit(&zfsvfs->z_teardown_inactive_lock);