diff --git a/0007-mount.nfs-always-include-mountpoint-or-spec-if-error.patch b/0007-mount.nfs-always-include-mountpoint-or-spec-if-error.patch new file mode 100644 index 0000000..eb9cc7a --- /dev/null +++ b/0007-mount.nfs-always-include-mountpoint-or-spec-if-error.patch @@ -0,0 +1,88 @@ +From e6dc15cbe1e0171055765f329d2f2b6a65ea9635 Mon Sep 17 00:00:00 2001 +From: NeilBrown +Date: Tue, 28 Mar 2023 13:49:57 +1100 +Subject: [PATCH] mount.nfs: always include mountpoint or spec if error + messages. + +If you try to mount from a server that is inaccessible you might get an +error like: + mount.nfs: No route to host + +This is OK when running "mount" interactively, but hardly useful when +found in system logs. + +This patch changes mount_error() to always included at least one of +mount_point and spec in any error message. + +Signed-off-by: NeilBrown +--- + utils/mount/error.c | 31 ++++++++++++++++--------------- + 1 file changed, 16 insertions(+), 15 deletions(-) + +--- a/utils/mount/error.c ++++ b/utils/mount/error.c +@@ -207,16 +207,17 @@ void mount_error(const char *spec, const + progname, spec); + break; + case EINVAL: +- nfs_error(_("%s: an incorrect mount option was specified"), progname); ++ nfs_error(_("%s: an incorrect mount option was specified for %s"), ++ progname, mount_point); + break; + case EOPNOTSUPP: +- nfs_error(_("%s: requested NFS version or transport protocol is not supported"), +- progname); ++ nfs_error(_("%s: requested NFS version or transport protocol is not supported for %s"), ++ progname, mount_point); + break; + case ENOTDIR: + if (spec) +- nfs_error(_("%s: mount spec %s or point %s is not a " +- "directory"), progname, spec, mount_point); ++ nfs_error(_("%s: mount spec %s or point %s is not a directory"), ++ progname, spec, mount_point); + else + nfs_error(_("%s: mount point %s is not a directory"), + progname, mount_point); +@@ -227,31 +228,31 @@ void mount_error(const char *spec, const + break; + case ENOENT: + if (spec) +- nfs_error(_("%s: mounting %s failed, " +- "reason given by server: %s"), +- progname, spec, strerror(error)); ++ nfs_error(_("%s: mounting %s failed, reason given by server: %s"), ++ progname, spec, strerror(error)); + else + nfs_error(_("%s: mount point %s does not exist"), +- progname, mount_point); ++ progname, mount_point); + break; + case ESPIPE: + rpc_mount_errors((char *)spec, 0, 0); + break; + case EIO: +- nfs_error(_("%s: mount system call failed"), progname); ++ nfs_error(_("%s: mount system call failed for %s"), ++ progname, mount_point); + break; + case EFAULT: +- nfs_error(_("%s: encountered unexpected error condition."), +- progname); ++ nfs_error(_("%s: encountered unexpected error condition for %s."), ++ progname, mount_point); + nfs_error(_("%s: please report the error to" PACKAGE_BUGREPORT), +- progname); ++ progname); + break; + case EALREADY: + /* Error message has already been provided */ + break; + default: +- nfs_error(_("%s: %s"), +- progname, strerror(error)); ++ nfs_error(_("%s: %s for %s on %s"), ++ progname, strerror(error), spec, mount_point); + } + } + diff --git a/0008-nfsd.man-fix-typo-in-section-on-scope.patch b/0008-nfsd.man-fix-typo-in-section-on-scope.patch new file mode 100644 index 0000000..4c62312 --- /dev/null +++ b/0008-nfsd.man-fix-typo-in-section-on-scope.patch @@ -0,0 +1,23 @@ +From e986a7c109cb25fe9de2de3e376ac6ed09d9dd12 Mon Sep 17 00:00:00 2001 +From: NeilBrown +Date: Wed, 29 Mar 2023 09:08:32 +1100 +Subject: [PATCH] nfsd.man: fix typo in section on "scope". + +The missing "-" meant that "-S" isn't mentioned at all. + +Signed-off-by: NeilBrown +--- + utils/nfsd/nfsd.man | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/utils/nfsd/nfsd.man ++++ b/utils/nfsd/nfsd.man +@@ -38,7 +38,7 @@ request on all known network addresses. + releases of the Linux Kernel. This option can be used multiple times + to listen to more than one interface. + .TP +-.B \S " or " \-\-scope scope ++.B \-S " or " \-\-scope scope + NFSv4.1 and later require the server to report a "scope" which is used + by the clients to detect if two connections are to the same server. + By default Linux NFSD uses the host name as the scope. diff --git a/nfs-utils.changes b/nfs-utils.changes index 8e6de11..f34370b 100644 --- a/nfs-utils.changes +++ b/nfs-utils.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Tue Mar 28 22:37:58 UTC 2023 - Neil Brown + +- Add 0007-mount.nfs-always-include-mountpoint-or-spec-if-error.patch + boo#1157881 +- Add 0008-nfsd.man-fix-typo-in-section-on-scope.patch + bsc#1209859 +- Allow scope to be sed in sysconfig: NFSD_SCOPE + ------------------------------------------------------------------- Mon Feb 6 00:23:05 UTC 2023 - Neil Brown diff --git a/nfs-utils.spec b/nfs-utils.spec index 9d2e523..e8dfe29 100644 --- a/nfs-utils.spec +++ b/nfs-utils.spec @@ -44,6 +44,8 @@ Source27: nfs-kernel-server.tmpfiles.conf Patch0: nfs-utils-1.0.7-bind-syntax.patch Patch5: 0005-modprobe-avoid-error-messages-if-sbin-sysctl-fail.patch Patch6: 0006-nfsd-allow-server-scope-to-be-set-with-config-or-com.patch +Patch7: 0007-mount.nfs-always-include-mountpoint-or-spec-if-error.patch +Patch8: 0008-nfsd.man-fix-typo-in-section-on-scope.patch BuildRequires: e2fsprogs-devel BuildRequires: gcc-c++ BuildRequires: libtool diff --git a/nfs.conf b/nfs.conf index 2f3a578..01d51c8 100644 --- a/nfs.conf +++ b/nfs.conf @@ -65,6 +65,7 @@ include = -/etc/nfs.conf.local # vers4.2=y # rdma=n # rdma-port=20049 + scope=$NFSD_SCOPE # [statd] # debug=0 diff --git a/sysconfig.nfs b/sysconfig.nfs index 995cd03..13f10f4 100644 --- a/sysconfig.nfs +++ b/sysconfig.nfs @@ -237,3 +237,17 @@ MOUNTD_OPTIONS="" # Fully Qualified Domain Names when mounting NFS Shares. # NFS_GSSD_AVOID_DNS="no" + +## Path: Network/File systems/NFS server +## Description: Set v4.1+ scope reported by server +## Type: string +## Default: "" +## ServiceRestart: nfs-server +# +# Set the scope reported by the NFS server. When nothing +# is given the kernel uses the configured hostname as +# a default. When NFS is used in a fail-over configuration +# it is important that all hosts which server the same resource +# report the same scope. +# +NFSD_SCOPE=""