forked from NixOS/nixpkgs
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
zfs: default disable zfs_dmu_offset_next_sync to avoid data corruption
This helps mitigate a data corruption bug. This was previously defaulted to zero prior to upstream commit 05b3eb6d232009db247882a39d518e7282630753, and it is already a tunable, so doing this seems safe. Initially data corruption was thought to be introduced with v2.2, but further upstream investigation currently believes that changes in v2.2 only exacerbated the issue that already existed. A longer-term fix is likely to be openzfs/zfs#15571, though that is not yet merged. The zfs_2_1 package has already backported that, so do not apply the tunable default change there. Positioning of `extraPatches` is to avoid merge conflicts with NixOS#269097. Patch is nearly identical to the [Gentoo][1] patch, but better patch formatting. See openzfs/zfs#11900 See openzfs/zfs#15526 [1]: https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-fs/zfs-kmod/files/zfs-kmod-2.2.1-Disable-zfs_dmu_offset_next_sync-tunable-by-default.patch
- Loading branch information
Showing
3 changed files
with
52 additions
and
0 deletions.
There are no files selected for viewing
44 changes: 44 additions & 0 deletions
44
pkgs/os-specific/linux/zfs/patches/disable-zfs-dmu-offset-next-sync-by-default-v2-2.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
From 3ba4ff328ab001d88d7714087d8a89687bc68312 Mon Sep 17 00:00:00 2001 | ||
From: Andrew Marshall <andrew@johnandrewmarshall.com> | ||
Date: Sun, 26 Nov 2023 12:46:18 -0500 | ||
Subject: [PATCH] Disable zfs_dmu_offset_next_sync tunable by default | ||
|
||
This helps mitigate a data corruption bug. This was previously defaulted | ||
to zero, so doing so seems safe. | ||
|
||
See https://github.com/openzfs/zfs/issues/11900 | ||
See https://github.com/openzfs/zfs/issues/15526 | ||
--- | ||
man/man4/zfs.4 | 2 +- | ||
module/zfs/dmu.c | 2 +- | ||
2 files changed, 2 insertions(+), 2 deletions(-) | ||
|
||
diff --git a/man/man4/zfs.4 b/man/man4/zfs.4 | ||
index 4ec52a2fb..2a69a8f54 100644 | ||
--- a/man/man4/zfs.4 | ||
+++ b/man/man4/zfs.4 | ||
@@ -1660,7 +1660,7 @@ Allow no-operation writes. | ||
The occurrence of nopwrites will further depend on other pool properties | ||
.Pq i.a. the checksumming and compression algorithms . | ||
. | ||
-.It Sy zfs_dmu_offset_next_sync Ns = Ns Sy 1 Ns | Ns 0 Pq int | ||
+.It Sy zfs_dmu_offset_next_sync Ns = Ns Sy 0 Ns | Ns 1 Pq int | ||
Enable forcing TXG sync to find holes. | ||
When enabled forces ZFS to sync data when | ||
.Sy SEEK_HOLE No or Sy SEEK_DATA | ||
diff --git a/module/zfs/dmu.c b/module/zfs/dmu.c | ||
index ddb29020b..5d37b6f92 100644 | ||
--- a/module/zfs/dmu.c | ||
+++ b/module/zfs/dmu.c | ||
@@ -82,7 +82,7 @@ static uint_t zfs_per_txg_dirty_frees_percent = 30; | ||
* Disabling this option will result in holes never being reported in dirty | ||
* files which is always safe. | ||
*/ | ||
-static int zfs_dmu_offset_next_sync = 1; | ||
+static int zfs_dmu_offset_next_sync = 0; | ||
|
||
/* | ||
* Limit the amount we can prefetch with one call to this amount. This | ||
-- | ||
2.42.0 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters