diff options
Diffstat (limited to 'module/os/freebsd/zfs/zfs_vnops.c')
-rw-r--r-- | module/os/freebsd/zfs/zfs_vnops.c | 7 |
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); |