diff options
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.patch | 67 |
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 - |