mirror_zfs/include/sys
Alexander Motin 33dba8c792
Fix scrub resume from newly created hole
It may happen that scan bookmark points to a block that was turned
into a part of a big hole.  In such case dsl_scan_visitbp() may skip
it and dsl_scan_check_resume() will not be called for it.  As result
new scan suspend won't be possible until the end of the object, that
may take hours if the object is a multi-terabyte ZVOL on a slow HDD
pool, stretching TXG to all that time, creating all sorts of problems.

This patch changes the resume condition to any greater or equal block,
so even if we miss the bookmarked block, the next one we find will
delete the bookmark, allowing new suspend.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Ryan Moeller <ryan@iXsystems.com>
Signed-off-by: Alexander Motin <mav@FreeBSD.org>
Sponsored-By: iXsystems, Inc.
Closes #13643
2022-07-20 17:02:36 -07:00
..
crypto Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
fm Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
fs Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
lua autoconf: single-step includes 2022-05-10 10:18:51 -07:00
sysevent Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zstd Unbreak zstd build on sparc64 2022-05-25 09:18:49 -07:00
abd_impl.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
abd.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
aggsum.h More aggsum optimizations 2021-06-07 09:02:47 -07:00
arc_impl.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
arc.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
avl_impl.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
avl.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
bitops.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
blake3.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
blkptr.h OpenZFS 8067 - zdb should be able to dump literal embedded block pointer 2017-07-07 11:28:01 -07:00
bplist.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
bpobj.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
bptree.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
bqueue.h Implement Redacted Send/Receive 2019-06-19 09:48:12 -07:00
btree.h Several B-tree optimizations 2022-06-24 13:55:58 -07:00
dataset_kstats.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
dbuf.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
ddt.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
dmu_impl.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
dmu_objset.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
dmu_recv.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
dmu_redact.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
dmu_send.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
dmu_traverse.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
dmu_tx.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
dmu_zfetch.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
dmu.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
dnode.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
dsl_bookmark.h Remaining {=> const} char|void *tag 2022-06-29 14:08:59 -07:00
dsl_crypt.h Remaining {=> const} char|void *tag 2022-06-29 14:08:59 -07:00
dsl_dataset.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
dsl_deadlist.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
dsl_deleg.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
dsl_destroy.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
dsl_dir.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
dsl_pool.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
dsl_prop.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
dsl_scan.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
dsl_synctask.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
dsl_userhold.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
edonr.h OpenZFS 4185 - add new cryptographic checksums to ZFS: SHA-512, Skein, Edon-R 2016-10-03 14:51:15 -07:00
efi_partition.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
frame.h Linux 5.10 compat: frame.h renamed objtool.h 2020-11-02 22:01:10 +00:00
hkdf.h Encryption patch follow-up 2017-10-11 16:54:48 -04:00
metaslab_impl.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
metaslab.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
mmp.h Add zfs_multihost_interval tunable handler for FreeBSD 2020-06-23 13:32:42 -07:00
mntent.h Expose ZFS dataset case sensitivity setting via sb_opts 2022-07-14 10:38:16 -07:00
mod.h linux: module: weld all but spl.ko into zfs.ko 2022-04-20 13:28:24 -07:00
multilist.h Re-embed multilist_t storage 2021-06-10 10:42:31 -06:00
nvpair_impl.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
nvpair.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
objlist.h Implement Redacted Send/Receive 2019-06-19 09:48:12 -07:00
pathname.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
qat.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
range_tree.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
rrwlock.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
sa_impl.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
sa.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
skein.h OpenZFS 4185 - add new cryptographic checksums to ZFS: SHA-512, Skein, Edon-R 2016-10-03 14:51:15 -07:00
spa_boot.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
spa_checkpoint.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
spa_checksum.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
spa_impl.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
spa_log_spacemap.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
spa.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
space_map.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
space_reftree.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
sysevent.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
txg_impl.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
txg.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
u8_textprep_data.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
u8_textprep.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
uberblock_impl.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
uberblock.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
uio_impl.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
unique.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
uuid.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
vdev_disk.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
vdev_draid.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
vdev_file.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
vdev_impl.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
vdev_indirect_births.h OpenZFS 7614, 9064 - zfs device evacuation/removal 2018-04-14 12:16:17 -07:00
vdev_indirect_mapping.h OpenZFS 7614, 9064 - zfs device evacuation/removal 2018-04-14 12:16:17 -07:00
vdev_initialize.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
vdev_raidz_impl.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
vdev_raidz.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
vdev_rebuild.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
vdev_removal.h panic in removal_remap test on 4K devices 2019-06-13 13:12:39 -07:00
vdev_trim.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
vdev.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
xvattr.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zap_impl.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zap_leaf.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zap.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zcp_global.h OpenZFS 7431 - ZFS Channel Programs 2018-02-08 15:28:18 -08:00
zcp_iter.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zcp_prop.h OpenZFS 7431 - ZFS Channel Programs 2018-02-08 15:28:18 -08:00
zcp_set.h Support setting user properties in a channel program 2020-02-14 13:41:42 -08:00
zcp.h Remaining {=> const} char|void *tag 2022-06-29 14:08:59 -07:00
zfeature.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_acl.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_bootenv.h zfs label bootenv should store data as nvlist 2020-09-15 15:42:27 -07:00
zfs_chksum.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_context.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_debug.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_delay.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_file.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_fuid.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_ioctl_impl.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_ioctl.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_onexit.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_project.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_quota.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_racct.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_ratelimit.h Change checksum & IO delay ratelimit values 2018-03-04 17:34:51 -08:00
zfs_refcount.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_rlock.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_sa.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_stat.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_sysfs.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_vfsops.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_vnops.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_znode.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zil_impl.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zil.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zio_checksum.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zio_compress.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zio_crypt.h Enable -Wwrite-strings 2022-06-29 14:08:54 -07:00
zio_impl.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zio_priority.h Add device rebuild feature 2020-07-03 11:05:50 -07:00
zio.h Fix scrub resume from newly created hole 2022-07-20 17:02:36 -07:00
zrlock.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zthr.h Avoid memory allocations in the ARC eviction thread 2022-01-21 10:28:13 -08:00
zvol_impl.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zvol.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00