aboutsummaryrefslogtreecommitdiffstats
path: root/cmd/zfs
diff options
context:
space:
mode:
authorDon Brady <[email protected]>2022-09-09 11:54:16 -0600
committerGitHub <[email protected]>2022-09-09 10:54:16 -0700
commitede037cda73675f42b1452187e8dd3438fafc220 (patch)
treefaa6d73ad888591c98ffb9b962ca6d13c6feb695 /cmd/zfs
parent60d995727a19104a2832d475f5c0861ffbae2c97 (diff)
Make zfs-share service resilient to stale exports
The are a few cases where stale entries in /etc/exports.d/zfs.exports will cause the nfs-server service to fail when starting up. Since the nfs-server startup consumes /etc/exports.d/zfs.exports, the zfs-share service (which rebuilds the list of zfs exports) should run before the nfs-server service. To make the zfs-share service resilient to stale exports, this change truncates the zfs config file as part of the zfs share -a operation. Reviewed-by: Allan Jude <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Don Brady <[email protected]> Closes #13775
Diffstat (limited to 'cmd/zfs')
-rw-r--r--cmd/zfs/zfs_main.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/cmd/zfs/zfs_main.c b/cmd/zfs/zfs_main.c
index f1d686753..008f1bea0 100644
--- a/cmd/zfs/zfs_main.c
+++ b/cmd/zfs/zfs_main.c
@@ -7093,6 +7093,9 @@ share_mount(int op, int argc, char **argv)
share_mount_state.sm_total = cb.cb_used;
pthread_mutex_init(&share_mount_state.sm_lock, NULL);
+ /* For a 'zfs share -a' operation start with a clean slate. */
+ zfs_truncate_shares(NULL);
+
/*
* libshare isn't mt-safe, so only do the operation in parallel
* if we're mounting. Additionally, the key-loading option must