From f116c4638d571429b0f13f1cceb7d4cdda1c8fd9 Mon Sep 17 00:00:00 2001 From: Rich Ercolani Date: Sat, 16 Mar 2024 12:17:22 -0400 Subject: [PATCH] Really flush when we check for holes. `zn_flush_cached_data(zp, B_FALSE)` doesn't wait for the flush to return. This almost certainly comes up vanishingly often, but. Signed-off-by: Rich Ercolani --- module/zfs/zfs_vnops.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/zfs/zfs_vnops.c b/module/zfs/zfs_vnops.c index 7f39ad6fc7..c7eefe64e0 100644 --- a/module/zfs/zfs_vnops.c +++ b/module/zfs/zfs_vnops.c @@ -123,7 +123,7 @@ zfs_holey_common(znode_t *zp, ulong_t cmd, loff_t *off) /* Flush any mmap()'d data to disk */ if (zn_has_cached_data(zp, 0, file_sz - 1)) - zn_flush_cached_data(zp, B_FALSE); + zn_flush_cached_data(zp, B_TRUE); lr = zfs_rangelock_enter(&zp->z_rangelock, 0, UINT64_MAX, RL_READER); error = dmu_offset_next(ZTOZSB(zp)->z_os, zp->z_id, hole, &noff);