zfs/module/zfs
Rob Norris 7121e678a2 zil_fail: reheck ZIL fail state before issuing IO
The ZIL may be failed any time we don't have the issuer lock, which
means we can end up working through zil_commit_impl() even when the ZIL
already failed.

So, each time we gain the issuer lock, recheck the fail state, and do
not issue IO if its failed. The waiter will eventually go to sleep
waiting to be signalled with the ZIL reopens in zil_sync()->zil_clean().

(cherry picked from commit 49fa92c8db389f257a15029d643fb026fa5b6dc2)
2023-07-31 15:05:56 +00:00
..
Makefile.in compress: add "slack" compression options 2023-07-05 13:27:31 +00:00
THIRDPARTYLICENSE.cityhash OpenZFS 8484 - Implement aggregate sum and use for arc counters 2018-06-06 09:35:59 -07:00
THIRDPARTYLICENSE.cityhash.descrip OpenZFS 8484 - Implement aggregate sum and use for arc counters 2018-06-06 09:35:59 -07:00
abd.c module: zfs: fix unused, remove argsused 2022-02-16 17:58:56 -08:00
aggsum.c More aggsum optimizations 2021-06-09 13:05:34 -07:00
arc.c zfs: support force exporting pools 2023-07-05 13:27:30 +00:00
blkptr.c Add zstd support to zfs 2020-08-20 10:30:06 -07:00
bplist.c Fast Clone Deletion 2019-07-26 10:54:14 -07:00
bpobj.c module: zfs: fix unused, remove argsused 2022-02-16 17:58:56 -08:00
bptree.c module: zfs: fix unused, remove argsused 2022-02-16 17:58:56 -08:00
bqueue.c Implement Redacted Send/Receive 2019-06-19 09:48:12 -07:00
btree.c btree: fix double-free in zfs_btree_remove_idx 2023-07-05 13:27:31 +00:00
dataset_kstats.c Introduce write-mostly sums 2021-06-09 13:05:34 -07:00
dbuf.c zfs: support force exporting pools 2023-07-05 13:27:30 +00:00
dbuf_stats.c Reduce dbuf_find() lock contention 2022-05-06 12:02:45 -07:00
ddt.c Tinker with slop space accounting with dedup 2021-09-14 12:38:05 -07:00
ddt_zap.c Refactor dnode dirty context from dbuf_dirty 2020-02-26 16:09:17 -08:00
dmu.c zil: allow the ZIL to fail and restart independently of the pool 2023-07-05 13:27:31 +00:00
dmu_diff.c module: zfs: fix unused, remove argsused 2022-02-16 17:58:56 -08:00
dmu_object.c Introduce CPU_SEQID_UNSTABLE 2020-11-02 11:51:12 -08:00
dmu_objset.c dmu: rename dmu_tx_assign flags 2023-07-05 13:27:30 +00:00
dmu_recv.c dmu: rename dmu_tx_assign flags 2023-07-05 13:27:30 +00:00
dmu_redact.c dmu: rename dmu_tx_assign flags 2023-07-05 13:27:30 +00:00
dmu_send.c zfs: support force exporting pools 2023-07-05 13:27:30 +00:00
dmu_traverse.c module: zfs: fix unused, remove argsused 2022-02-16 17:58:56 -08:00
dmu_tx.c dmu_tx_wait: handle pool suspension when failmode=continue 2023-07-05 13:27:30 +00:00
dmu_zfetch.c module: zfs: fix unused, remove argsused 2022-02-16 17:58:56 -08:00
dnode.c Turn default_bs and default_ibs into ZFS_MODULE_PARAMs 2023-07-05 13:27:30 +00:00
dnode_sync.c Report dnodes with faulty bonuslen 2022-02-16 17:58:55 -08:00
dsl_bookmark.c module: zfs: fix unused, remove argsused 2022-02-16 17:58:56 -08:00
dsl_crypt.c Introduce a flag to skip comparing the local mac when raw sending 2022-02-04 16:14:56 -08:00
dsl_dataset.c zfs: support force exporting pools 2023-07-05 13:27:30 +00:00
dsl_deadlist.c Livelist logic should handle dedup blkptrs 2021-06-09 13:05:34 -07:00
dsl_deleg.c Reduce loaded range tree memory usage 2019-10-09 10:36:03 -07:00
dsl_destroy.c module: zfs: fix unused, remove argsused 2022-02-16 17:58:56 -08:00
dsl_dir.c Fix ENOSPC when unlinking multiple files from full pool 2022-03-08 11:46:03 -08:00
dsl_pool.c zfs: support force exporting pools 2023-07-05 13:27:30 +00:00
dsl_prop.c module: zfs: fix unused, remove argsused 2022-02-16 17:58:56 -08:00
dsl_scan.c dmu: rename dmu_tx_assign flags 2023-07-05 13:27:30 +00:00
dsl_synctask.c dmu: rename dmu_tx_assign flags 2023-07-05 13:27:30 +00:00
dsl_userhold.c Replace sprintf()->snprintf() and strcpy()->strlcpy() 2020-06-07 11:42:12 -07:00
edonr_zfs.c Add include files for prototypes 2020-06-18 12:21:25 -07:00
fm.c module: zfs: fix unused, remove argsused 2022-02-16 17:58:56 -08:00
gzip.c module: zfs: fix unused, remove argsused 2022-02-16 17:58:56 -08:00
hkdf.c Encryption patch follow-up 2017-10-11 16:54:48 -04:00
jprint.c json: Define PRId64 and PRIu64 on FreeBSD 2023-07-05 13:27:31 +00:00
json_stats.c JSON spares state readout 2023-07-05 13:27:31 +00:00
lz4.c module: zfs: fix unused, remove argsused 2022-02-16 17:58:56 -08:00
lzjb.c module: zfs: fix unused, remove argsused 2022-02-16 17:58:56 -08:00
metaslab.c zfs: support force exporting pools 2023-07-05 13:27:30 +00:00
mmp.c Optimize small random numbers generation 2021-09-14 12:10:17 -07:00
multilist.c Optimize small random numbers generation 2021-09-14 12:10:17 -07:00
objlist.c Implement Redacted Send/Receive 2019-06-19 09:48:12 -07:00
pathname.c Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
range_tree.c module: zfs: fix unused, remove argsused 2022-02-16 17:58:56 -08:00
refcount.c Export minimal zfs_refcount interfaces 2022-04-06 10:29:00 -07:00
rrwlock.c Rename refcount.h to zfs_refcount.h 2020-07-29 16:35:33 -07:00
sa.c module: zfs: fix unused, remove argsused 2022-02-16 17:58:56 -08:00
sha256.c module: zfs: fix unused, remove argsused 2022-02-16 17:58:56 -08:00
skein_zfs.c Add include files for prototypes 2020-06-18 12:21:25 -07:00
slack.c compress: add "slack" compression options 2023-07-05 13:27:31 +00:00
spa.c zpool: Provide GUID to zpool-reguid(8) with -g 2023-07-05 13:27:31 +00:00
spa_boot.c Add include files for prototypes 2020-06-18 12:21:25 -07:00
spa_checkpoint.c zfs: support force exporting pools 2023-07-05 13:27:30 +00:00
spa_config.c zfs: support force exporting pools 2023-07-05 13:27:30 +00:00
spa_errlog.c zfs: support force exporting pools 2023-07-05 13:27:30 +00:00
spa_history.c dmu: rename dmu_tx_assign flags 2023-07-05 13:27:30 +00:00
spa_log_spacemap.c zfs: support force exporting pools 2023-07-05 13:27:30 +00:00
spa_misc.c zfs: support force exporting pools 2023-07-05 13:27:30 +00:00
spa_stats.c Add a JSON equivalent to zpool-status(8) 2023-07-05 13:27:30 +00:00
space_map.c zfs: support force exporting pools 2023-07-05 13:27:30 +00:00
space_reftree.c Reduce loaded range tree memory usage 2019-10-09 10:36:03 -07:00
txg.c zfs: support force exporting pools 2023-07-05 13:27:30 +00:00
uberblock.c MMP interval and fail_intervals in uberblock 2019-03-21 12:47:57 -07:00
unique.c Reduce loaded range tree memory usage 2019-10-09 10:36:03 -07:00
vdev.c vdev: expose zfs_vdev_max_ms_shift as a module parameter 2023-07-31 15:05:56 +00:00
vdev_cache.c Replace ASSERTV macro with compiler annotation 2019-12-05 12:37:00 -08:00
vdev_draid.c module: zfs: fix unused, remove argsused 2022-02-16 17:58:56 -08:00
vdev_draid_rand.c Distributed Spare (dRAID) Feature 2020-11-13 13:51:51 -08:00
vdev_indirect.c dmu: rename dmu_tx_assign flags 2023-07-05 13:27:30 +00:00
vdev_indirect_births.c Fixes: #8934 Large kmem_alloc 2019-07-10 15:54:49 -07:00
vdev_indirect_mapping.c Replace ASSERTV macro with compiler annotation 2019-12-05 12:37:00 -08:00
vdev_initialize.c dmu: rename dmu_tx_assign flags 2023-07-05 13:27:30 +00:00
vdev_label.c zio_flush: require caller to decide if errors should propagate 2023-07-05 13:27:31 +00:00
vdev_mirror.c module: zfs: fix unused, remove argsused 2022-02-16 17:58:56 -08:00
vdev_missing.c module: zfs: fix unused, remove argsused 2022-02-16 17:58:56 -08:00
vdev_queue.c Avoid vq_lock drop in vdev_queue_aggregate() 2021-09-14 14:31:22 -07:00
vdev_raidz.c module: zfs: fix unused, remove argsused 2022-02-16 17:58:56 -08:00
vdev_raidz_math.c Initialize parity blocks before RAID-Z reconstruction benchmarking 2021-09-14 14:32:16 -07:00
vdev_raidz_math_aarch64_neon.c Linux 5.0 compat: SIMD compatibility 2019-07-12 09:31:20 -07:00
vdev_raidz_math_aarch64_neon_common.h FreeBSD: fix the build with Clang 11 2020-08-17 15:40:17 -07:00
vdev_raidz_math_aarch64_neonx2.c Linux 5.0 compat: SIMD compatibility 2019-07-12 09:31:20 -07:00
vdev_raidz_math_avx2.c FreeBSD: fix the build with Clang 11 2020-08-17 15:40:17 -07:00
vdev_raidz_math_avx512bw.c Refactor ccompile.h to not include system headers 2020-07-25 20:09:50 -07:00
vdev_raidz_math_avx512f.c FreeBSD: fix the build with Clang 11 2020-08-17 15:40:17 -07:00
vdev_raidz_math_impl.h Distributed Spare (dRAID) Feature 2020-11-13 13:51:51 -08:00
vdev_raidz_math_powerpc_altivec.c Prefix zfs internal endian checks with _ZFS 2020-07-28 13:02:49 -07:00
vdev_raidz_math_powerpc_altivec_common.h FreeBSD: fix the build with Clang 11 2020-08-17 15:40:17 -07:00
vdev_raidz_math_scalar.c Use fallthrough macro 2021-11-02 09:50:30 -07:00
vdev_raidz_math_sse2.c FreeBSD: fix the build with Clang 11 2020-08-17 15:40:17 -07:00
vdev_raidz_math_ssse3.c Refactor ccompile.h to not include system headers 2020-07-25 20:09:50 -07:00
vdev_rebuild.c dmu: rename dmu_tx_assign flags 2023-07-05 13:27:30 +00:00
vdev_removal.c dmu: rename dmu_tx_assign flags 2023-07-05 13:27:30 +00:00
vdev_root.c Distributed Spare (dRAID) Feature 2020-11-13 13:51:51 -08:00
vdev_trim.c dmu: rename dmu_tx_assign flags 2023-07-05 13:27:30 +00:00
zap.c zfs: support force exporting pools 2023-07-05 13:27:30 +00:00
zap_leaf.c Remove unneeded "extern inline" function declarations 2022-02-16 17:58:56 -08:00
zap_micro.c Add tunable to allow changing micro ZAP's max size 2023-07-05 13:27:30 +00:00
zcp.c module: zfs: fix unused, remove argsused 2022-02-16 17:58:56 -08:00
zcp_get.c Add include files for prototypes 2020-06-18 12:21:25 -07:00
zcp_global.c OpenZFS 8600 - ZFS channel programs - snapshot 2018-02-08 15:29:24 -08:00
zcp_iter.c Fix typos in module/zfs/ 2019-09-02 17:56:41 -07:00
zcp_set.c Support setting user properties in a channel program 2020-02-14 13:41:42 -08:00
zcp_synctask.c module: zfs: fix unused, remove argsused 2022-02-16 17:58:56 -08:00
zfeature.c Throw const on some strings 2020-10-02 17:44:10 -07:00
zfs_byteswap.c Mark functions as static 2020-06-18 12:20:38 -07:00
zfs_fm.c fm: remove unused variables 2022-05-02 15:42:58 -07:00
zfs_fuid.c Fix regression in POSIX mode behavior 2021-03-19 22:50:46 -07:00
zfs_ioctl.c compress: add "slack" compression options 2023-07-05 13:27:31 +00:00
zfs_log.c Initialize all fields in zfs_log_xvattr() 2021-09-14 12:42:21 -07:00
zfs_onexit.c file reference counts can get corrupted 2021-09-14 12:37:38 -07:00
zfs_quota.c dmu: rename dmu_tx_assign flags 2023-07-05 13:27:30 +00:00
zfs_ratelimit.c Change checksum & IO delay ratelimit values 2018-03-04 17:34:51 -08:00
zfs_replay.c dmu: rename dmu_tx_assign flags 2023-07-05 13:27:30 +00:00
zfs_rlock.c Add a "try" operation for range locks 2020-07-06 11:53:31 -07:00
zfs_sa.c vnops: thread DMU_TX_ASSIGN_CONTINUE to a bunch of vnops 2023-07-05 13:27:30 +00:00
zfs_vnops.c zil: allow the ZIL to fail and restart independently of the pool 2023-07-05 13:27:31 +00:00
zil.c zil_fail: reheck ZIL fail state before issuing IO 2023-07-31 15:05:56 +00:00
zio.c zio_flush: require caller to decide if errors should propagate 2023-07-05 13:27:31 +00:00
zio_checksum.c module: zfs: fix unused, remove argsused 2022-02-16 17:58:56 -08:00
zio_compress.c compress: add "slack" compression options 2023-07-05 13:27:31 +00:00
zio_inject.c Optimize small random numbers generation 2021-09-14 12:10:17 -07:00
zle.c Add include files for prototypes 2020-06-18 12:21:25 -07:00
zrlock.c Remove dead code 2020-06-18 12:21:18 -07:00
zthr.c Avoid memory allocations in the ARC eviction thread 2022-02-03 15:30:52 -08:00
zvol.c dmu: rename dmu_tx_assign flags 2023-07-05 13:27:30 +00:00