Fix zfs-mount.service failure on boot

The mount(8) command will helpfully try to resolve any device name
which is passed in.  It does this by applying some simple heuristics
before passing it along to the registered mount helper.

Normally this fine.  However, one of these heuristics is to prepend
the current working directory to the passed device name.  If that
resulting directory name exists mount(8) will perform the mount(2)
system call and never invoke the helper utility.

Since the cwd for systemd when running as the system instance is
the root directory the default mount points created by zfs(8) can
cause a mount failure.

This change avoids the issue by explicitly setting the cwd to
a different path when performing the mount.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #5719
This commit is contained in:
Brian Behlendorf 2017-02-08 10:17:29 -08:00 committed by GitHub
parent 97dde9211d
commit d32d25c5c2
1 changed files with 1 additions and 0 deletions

View File

@ -11,6 +11,7 @@ Before=local-fs.target
Type=oneshot Type=oneshot
RemainAfterExit=yes RemainAfterExit=yes
ExecStart=@sbindir@/zfs mount -a ExecStart=@sbindir@/zfs mount -a
WorkingDirectory=-/sbin/
[Install] [Install]
WantedBy=zfs-share.service WantedBy=zfs-share.service