mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 18:40:43 +03:00
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 <allan@klarasystems.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Don Brady <don.brady@delphix.com> Closes #13775
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
* Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2011 Gunnar Beutner
|
||||
* Copyright (c) 2012 Cyril Plisko. All rights reserved.
|
||||
* Copyright (c) 2019, 2020 by Delphix. All rights reserved.
|
||||
* Copyright (c) 2019, 2022 by Delphix. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <dirent.h>
|
||||
@@ -495,6 +495,12 @@ nfs_commit_shares(void)
|
||||
return (libzfs_run_process(argv[0], argv, 0));
|
||||
}
|
||||
|
||||
static void
|
||||
nfs_truncate_shares(void)
|
||||
{
|
||||
nfs_reset_shares(ZFS_EXPORTS_LOCK, ZFS_EXPORTS_FILE);
|
||||
}
|
||||
|
||||
const sa_fstype_t libshare_nfs_type = {
|
||||
.enable_share = nfs_enable_share,
|
||||
.disable_share = nfs_disable_share,
|
||||
@@ -502,6 +508,7 @@ const sa_fstype_t libshare_nfs_type = {
|
||||
|
||||
.validate_shareopts = nfs_validate_shareopts,
|
||||
.commit_shares = nfs_commit_shares,
|
||||
.truncate_shares = nfs_truncate_shares,
|
||||
};
|
||||
|
||||
static boolean_t
|
||||
|
||||
Reference in New Issue
Block a user