summaryrefslogtreecommitdiff
path: root/sys-fs/zfs-kmod/files/2.1.10-Revert-ZFS_IOC_COUNT_FILLED-does-unnecessary-txg_wai.patch
diff options
context:
space:
mode:
Diffstat (limited to 'sys-fs/zfs-kmod/files/2.1.10-Revert-ZFS_IOC_COUNT_FILLED-does-unnecessary-txg_wai.patch')
-rw-r--r--sys-fs/zfs-kmod/files/2.1.10-Revert-ZFS_IOC_COUNT_FILLED-does-unnecessary-txg_wai.patch67
1 files changed, 0 insertions, 67 deletions
diff --git a/sys-fs/zfs-kmod/files/2.1.10-Revert-ZFS_IOC_COUNT_FILLED-does-unnecessary-txg_wai.patch b/sys-fs/zfs-kmod/files/2.1.10-Revert-ZFS_IOC_COUNT_FILLED-does-unnecessary-txg_wai.patch
deleted file mode 100644
index 150d1b5145d9..000000000000
--- a/sys-fs/zfs-kmod/files/2.1.10-Revert-ZFS_IOC_COUNT_FILLED-does-unnecessary-txg_wai.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From ac6b8f40981cb9328c22a3485e1a4b060ea89b1e Mon Sep 17 00:00:00 2001
-From: Sam James <sam@gentoo.org>
-Date: Sun, 16 Apr 2023 04:49:04 +0100
-Subject: [PATCH] Revert "ZFS_IOC_COUNT_FILLED does unnecessary
- txg_wait_synced()"
-
-This reverts commit 4b3133e671b958fa2c915a4faf57812820124a7b.
-
-See #14753 - possible corruption again, very similar symptoms to the
-nightmare that was #11900 and same area of code.
-
-We can safely revert it as it's an optimisation rather than a bugfix
-in itself.
-
-Bug: https://github.com/openzfs/zfs/issues/14753
-Bug: https://github.com/openzfs/zfs/issues/11900
-Signed-off-by: Sam James <sam@gentoo.org>
---- a/module/zfs/dnode.c
-+++ b/module/zfs/dnode.c
-@@ -1773,29 +1773,20 @@ dnode_try_claim(objset_t *os, uint64_t object, int slots)
- }
-
- /*
-- * Checks if the dnode might contain any uncommitted changes to data blocks.
-- * Dirty metadata (e.g. bonus buffer) does not count.
-+ * Checks if the dnode contains any uncommitted dirty records.
- */
- boolean_t
- dnode_is_dirty(dnode_t *dn)
- {
- mutex_enter(&dn->dn_mtx);
-+
- for (int i = 0; i < TXG_SIZE; i++) {
-- list_t *list = &dn->dn_dirty_records[i];
-- for (dbuf_dirty_record_t *dr = list_head(list);
-- dr != NULL; dr = list_next(list, dr)) {
-- if (dr->dr_dbuf == NULL ||
-- (dr->dr_dbuf->db_blkid != DMU_BONUS_BLKID &&
-- dr->dr_dbuf->db_blkid != DMU_SPILL_BLKID)) {
-- mutex_exit(&dn->dn_mtx);
-- return (B_TRUE);
-- }
-- }
-- if (dn->dn_free_ranges[i] != NULL) {
-+ if (multilist_link_active(&dn->dn_dirty_link[i])) {
- mutex_exit(&dn->dn_mtx);
- return (B_TRUE);
- }
- }
-+
- mutex_exit(&dn->dn_mtx);
-
- return (B_FALSE);
-@@ -2667,9 +2658,7 @@ dnode_next_offset(dnode_t *dn, int flags, uint64_t *offset,
- rw_enter(&dn->dn_struct_rwlock, RW_READER);
-
- if (dn->dn_phys->dn_nlevels == 0) {
-- if (!(flags & DNODE_FIND_HOLE)) {
-- error = SET_ERROR(ESRCH);
-- }
-+ error = SET_ERROR(ESRCH);
- goto out;
- }
-
---
-2.40.0
-