diff mbox

systemd: Order NFS server before client

Message ID 20150303095516.GB3219@piware.de (mailing list archive)
State New, archived
Headers show

Commit Message

Martin Pitt March 3, 2015, 9:55 a.m. UTC
Hello all,

I'm currently systemd-ifying our nfs-utils Ubuntu package. For testing
I put the NFS server and client (i. e. localhost:/foo/bar mounts) on
the same machine. With that I get long hangs during shutdown on
stopping the NFS .mount units, as when that happens the NFS server is
already shut down.

This is certainly a corner case as you'd usually not NFS-mount a share
from localhost; but fixing it is relatively simple with the attached
patch which makes sure that if NFS server and client are installed,
the server starts before the client, and the client stops before the
server.

For a client without installed server this is harmless as Before= does
not imply a dependency. Likewise, for an NFS server which does not
mount shares by itself, it's also a no-op as remote-fs.target is
empty. This would only slightly reorder the boot sequence for machines
which both are an NFS server and have some remote NFS mounts, but
I don't see an issue with that.

Thanks for considering,

Martin
diff mbox

Patch

From d8c1fcce6d06aa062315a47134e8e3b364cb0700 Mon Sep 17 00:00:00 2001
From: Martin Pitt <martin.pitt@ubuntu.com>
Date: Tue, 3 Mar 2015 10:45:38 +0100
Subject: [PATCH] systemd: Order NFS server before client

This makes mounting NFS shares from localhost work reliably, as you need to
start the server before attempting (client) mounts, and conversely on shutdown
need to unmount all shares before stopping the server to avoid hangs.
---
 systemd/nfs-server.service | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/systemd/nfs-server.service b/systemd/nfs-server.service
index 8010aad..b35e193 100644
--- a/systemd/nfs-server.service
+++ b/systemd/nfs-server.service
@@ -13,6 +13,9 @@  Before= rpc-statd-notify.service
 Wants=auth-rpcgss-module.service
 After=rpc-gssd.service gssproxy.service rpc-svcgssd.service
 
+# start/stop server before/after client
+Before=remote-fs-pre.target
+
 Wants=nfs-config.service
 After=nfs-config.service
 
-- 
2.1.4