summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorge Wilson <[email protected]>2019-07-28 21:13:56 -0400
committerBrian Behlendorf <[email protected]>2019-07-28 18:13:56 -0700
commit453bb4791e7d0479643ce340818106ab878b562b (patch)
treebb59b5f3c06d01e411fb612437f1ebb44053e0f7
parent693c1fc478cc8118dd0168c4815c0ae3be41c9c3 (diff)
Race between zfs-share and zfs-mount services
When a system boots the zfs-mount.service and the zfs-share.service can start simultaneously. What may be unclear is that sharing a filesystem will first mount the filesystem if it's not already mounted. This means that both service can race to mount the same fileystem. This race can result in a SEGFAULT or EBUSY conditions. This change explicitly defines the start ordering between the two services such that the zfs-mount.service is solely responsible for mounting filesystems eliminating the race between "zfs mount -a" and "zfs share -a" commands. Reviewed-by: Sebastien Roy <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: George Wilson <[email protected]> Closes #9083
-rw-r--r--etc/systemd/system/zfs-share.service.in1
1 files changed, 1 insertions, 0 deletions
diff --git a/etc/systemd/system/zfs-share.service.in b/etc/systemd/system/zfs-share.service.in
index 75ff6e946..5f4ba411b 100644
--- a/etc/systemd/system/zfs-share.service.in
+++ b/etc/systemd/system/zfs-share.service.in
@@ -5,6 +5,7 @@ After=nfs-server.service nfs-kernel-server.service
After=smb.service
Before=rpc-statd-notify.service
Wants=zfs-mount.service
+After=zfs-mount.service
PartOf=nfs-server.service nfs-kernel-server.service
PartOf=smb.service