mirror_zfs/module/os/linux/zfs
Rich Ercolani 692f78045e Workaround issue cleaning up automounted snapshots on Linux
On Linux, sometimes, when ZFS goes to unmount an automounted snap,
it fails a VERIFY check on debug builds, because taskq_cancel_id
returned ENOENT after not finding the taskq it was trying to cancel.

This presumably happens when it already died for some reason; in this
case, we don't really mind it already being dead, since we're just
going to dispatch a new task to unmount it right after.

So we just ignore it if we get back ENOENT trying to cancel here,
retry a couple times if we get back the only other possible condition
(EBUSY), and log to dbgmsg if we got anything but ENOENT or success.

(We also add some locking around taskqid, to avoid one or two cases
of two instances of trying to cancel something at once.)

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Tony Nguyen <tony.nguyen@delphix.com>
Signed-off-by: Rich Ercolani <rincebrain@gmail.com>
Closes #11632
Closes #12670
2023-08-24 17:16:05 -07:00
..
abd_os.c Avoid small buffer copying on write 2022-07-26 10:10:37 -07:00
arc_os.c Linux 6.4 compat: reclaimed_slab renamed to reclaimed 2023-06-05 10:59:02 -07:00
Makefile.in Restore FreeBSD resource usage accounting 2021-02-19 22:34:33 -08:00
mmp_os.c Add zfs_multihost_interval tunable handler for FreeBSD 2020-06-23 13:32:42 -07:00
policy.c Linux 6.3 compat: idmapped mount API changes 2023-06-05 10:59:02 -07:00
qat_compress.c QAT: Fix uninitialized seed in QAT compression 2023-03-17 11:09:07 -07:00
qat_crypt.c QAT related bug fixes 2019-09-12 13:33:44 -07:00
qat.c QAT related bug fixes 2019-09-12 13:33:44 -07:00
spa_misc_os.c Make spa_history_zone platform-dependent in kernel 2020-03-02 09:43:30 -08:00
trace.c Enable use of DTRACE_PROBE* macros in "spl" module 2019-11-01 13:13:43 -07:00
vdev_disk.c zed: mark disks as REMOVED when they are removed 2023-03-27 11:32:09 -07:00
vdev_file.c module: zfs: fix unused, remove argsused 2022-02-16 17:58:56 -08:00
zfs_acl.c Use fallthrough macro 2021-11-02 09:50:30 -07:00
zfs_ctldir.c Workaround issue cleaning up automounted snapshots on Linux 2023-08-24 17:16:05 -07:00
zfs_debug.c Annotated dprintf as printf-like 2021-06-24 13:12:36 -07:00
zfs_dir.c skip permission checks for extended attributes 2023-01-05 11:10:28 -08:00
zfs_file_os.c file reference counts can get corrupted 2021-09-14 12:37:38 -07:00
zfs_ioctl_os.c Linux 6.3 compat: idmapped mount API changes 2023-06-05 10:59:02 -07:00
zfs_racct.c module: zfs: fix unused, remove argsused 2022-02-16 17:58:56 -08:00
zfs_sysfs.c Linux 5.18 compat: kobj_type.default_attrs replaced with default_groups 2022-04-25 10:00:09 -07:00
zfs_uio.c autoconf: Fail when __copy_from_user_inatomic is a non-GPL symbol 2022-05-20 10:33:24 -07:00
zfs_vfsops.c Use vmem_zalloc to silence allocation warning 2023-05-26 10:10:09 -07:00
zfs_vnops_os.c Linux 6.3 compat: idmapped mount API changes 2023-06-05 10:59:02 -07:00
zfs_znode.c Linux: use filemap_range_has_page() 2023-06-05 10:59:02 -07:00
zio_crypt.c Linux: Fix uninitialized variable usage in zio_do_crypt_data() 2022-09-27 15:43:26 -07:00
zpl_ctldir.c Linux 6.3 compat: idmapped mount API changes 2023-06-05 10:59:02 -07:00
zpl_export.c Return required size when encode_fh size too small 2021-05-10 12:13:45 -07:00
zpl_file.c Linux 6.3 compat: idmapped mount API changes 2023-06-05 10:59:02 -07:00
zpl_inode.c Linux 6.3 compat: idmapped mount API changes 2023-06-05 10:59:02 -07:00
zpl_super.c Linux: Fix ZFS_ENTER/ZFS_EXIT/ZFS_VERFY_ZP usage 2020-11-14 10:19:00 -08:00
zpl_xattr.c Linux 6.3 compat: idmapped mount API changes 2023-06-05 10:59:02 -07:00
zvol_os.c Linux 5.20 compat: blk_cleanup_disk() 2022-08-09 09:41:06 -07:00