aboutsummaryrefslogtreecommitdiffstats
path: root/module/zfs/dbuf.c
diff options
context:
space:
mode:
authorRichard Yao <[email protected]>2023-03-10 12:34:00 -0500
committerGitHub <[email protected]>2023-03-10 09:34:00 -0800
commit7316fdd1c0c74074c4b48a499afe4e444aa42914 (patch)
tree29e361edcfcb8a7889756cfd322e874f7f03b973 /module/zfs/dbuf.c
parent950980b4c4f8b6441c0b6b3afe150437190a69b6 (diff)
txg_sync should handle write errors in ZIL
The txg_sync thread will see certain buffers in a DR_IN_DMU_SYNC state when ZIL is writing them out. Then it waits until the state changes, but has an assertion to check that they were not DR_NOT_OVERRIDDEN. If the data write failed with an error, ZIL will put it into the DR_NOT_OVERRIDDEN state. It looks like the code will handle that state without an issue, so we can just delete the assertion. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Richard Yao <[email protected]> Sponsored-By: Wasabi Technology, Inc. Closes #14283
Diffstat (limited to 'module/zfs/dbuf.c')
-rw-r--r--module/zfs/dbuf.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/module/zfs/dbuf.c b/module/zfs/dbuf.c
index f1d2f61e7..191e5e043 100644
--- a/module/zfs/dbuf.c
+++ b/module/zfs/dbuf.c
@@ -4434,7 +4434,6 @@ dbuf_sync_leaf(dbuf_dirty_record_t *dr, dmu_tx_t *tx)
while (dr->dt.dl.dr_override_state == DR_IN_DMU_SYNC) {
ASSERT(dn->dn_object != DMU_META_DNODE_OBJECT);
cv_wait(&db->db_changed, &db->db_mtx);
- ASSERT(dr->dt.dl.dr_override_state != DR_NOT_OVERRIDDEN);
}
/*