zfs/lib/libzfs
Rob Norris 7e4a9cbaee zpool_disable_datasets: on Linux, detach mounts when forcing export
On Linux, MNT_FORCE makes the kernel inform that fileystem that its
about to call its unmount method so it can begin to eject active IO,
making it more likely that the unmount will succeed. This however does
not arrange for the unmount method to always succeed; new IO between the
two filesystem calls can dirty the filesystem. This is very difficult to
lock out properly within ZFS, as not all operations that cause the
kernel to dirty the filesystem can easily locked out (eg zfs_lookup).

So, we add MNT_DETACH as well. This causes the kernel to first remove
the mount from the user namespace, giving the appearance that it has
been unmounted (ie no longer appears in /proc/mounts), so that userspace
can't reference the filesystem anymore. The unmount then proceeds in the
background.

Signed-off-by: Rob Norris <rob.norris@klarasystems.com>
(cherry picked from commit d2e1634fc935288aa851b5915feaa670c791265c)
2023-07-05 13:27:30 +00:00
..
os zfs: support force exporting pools 2023-07-05 13:27:30 +00:00
.gitignore Clean up lib dependencies 2020-07-10 14:26:00 -07:00
Makefile.am libzfs: add keylocation=https://, backed by fetch(3) or libcurl 2022-02-16 17:58:37 -08:00
THIRDPARTYLICENSE.openssl Fix typos in lib/ 2019-09-02 17:53:27 -07:00
THIRDPARTYLICENSE.openssl.descrip Encryption patch follow-up 2017-10-11 16:54:48 -04:00
libzfs.abi zfs: support force exporting pools 2023-07-05 13:27:30 +00:00
libzfs.pc.in Spruce up pkg-config files for libzfs/libzfs_core 2020-09-04 11:11:18 -07:00
libzfs.suppr Library ABI tracking with abigail 2020-11-17 09:18:52 -08:00
libzfs_changelist.c Add 'zfs rename -u' to rename without remounting 2020-09-01 16:14:16 -07:00
libzfs_config.c Use zfs_ioctl with zfs_cmd_t in libzfs 2019-10-23 17:29:43 -07:00
libzfs_crypto.c get_key_material_https: removed bogus free() call 2022-03-17 10:22:13 -07:00
libzfs_dataset.c zfs: support force exporting pools 2023-07-05 13:27:30 +00:00
libzfs_diff.c libzfs: diff: stream_bytes: use fputc, %hho formats chars 2022-04-01 09:58:45 -07:00
libzfs_import.c libzfs: import: zpool_clear_label: actually fail if clearing l2arc header fails 2022-04-15 14:16:59 -07:00
libzfs_iter.c lib/: set O_CLOEXEC on all fds 2021-04-14 13:23:07 -07:00
libzfs_mount.c zpool_disable_datasets: on Linux, detach mounts when forcing export 2023-07-05 13:27:30 +00:00
libzfs_pool.c zfs: support force exporting pools 2023-07-05 13:27:30 +00:00
libzfs_sendrecv.c Reject zfs send -RI with nonexistent fromsnap 2022-06-06 16:57:41 -07:00
libzfs_status.c zfs: support force exporting pools 2023-07-05 13:27:30 +00:00
libzfs_util.c libzfs: add keylocation=https://, backed by fetch(3) or libcurl 2022-02-16 17:58:37 -08:00