Merge pull request #270275 from amarshall/zfs-disable-dmu-offset-by-default
zfs: default disable zfs_dmu_offset_next_sync to avoid data corruption
This commit is contained in:
commit
c9b87a5dfa
3 changed files with 52 additions and 0 deletions
|
@ -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
|
||||
|
|
@ -28,6 +28,10 @@ callPackage ./generic.nix args {
|
|||
# this package should point to the latest release.
|
||||
version = "2.2.1";
|
||||
|
||||
extraPatches = [
|
||||
./patches/disable-zfs-dmu-offset-next-sync-by-default-v2-2.patch
|
||||
];
|
||||
|
||||
tests = [
|
||||
nixosTests.zfs.installer
|
||||
nixosTests.zfs.stable
|
||||
|
|
|
@ -35,4 +35,8 @@ callPackage ./generic.nix args {
|
|||
tests = [
|
||||
nixosTests.zfs.unstable
|
||||
];
|
||||
|
||||
extraPatches = [
|
||||
./patches/disable-zfs-dmu-offset-next-sync-by-default-v2-2.patch
|
||||
];
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue