Hello community,

here is the log from the commit of package nfs-utils for openSUSE:Factory 
checked in at 2016-03-07 13:25:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nfs-utils (Old)
 and      /work/SRC/openSUSE:Factory/.nfs-utils.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "nfs-utils"

Changes:
--------
--- /work/SRC/openSUSE:Factory/nfs-utils/nfs-utils.changes      2016-02-28 
02:28:19.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.nfs-utils.new/nfs-utils.changes 2016-03-07 
13:25:46.000000000 +0100
@@ -1,0 +2,7 @@
+Wed Mar  2 03:53:26 UTC 2016 - [email protected]
+
+- 0001-mount.nfs-hide-EBUSY-errors.patch
+  Stop "mount -a -t nfs" from complaining if filesystem
+  already mounted (bsc#950340)
+
+-------------------------------------------------------------------

New:
----
  0001-mount.nfs-hide-EBUSY-errors.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ nfs-utils.spec ++++++
--- /var/tmp/diff_new_pack.K2aDpZ/_old  2016-03-07 13:25:47.000000000 +0100
+++ /var/tmp/diff_new_pack.K2aDpZ/_new  2016-03-07 13:25:47.000000000 +0100
@@ -64,6 +64,7 @@
 Patch1:         nfs-utils-no-svcgss.service
 Patch2:         nfs-utils-uninit-mem.patch
 Patch3:         0001-Fix-protocol-minor-version-fall-back.patch
+Patch4:         0001-mount.nfs-hide-EBUSY-errors.patch
 Suggests:       python-base
 
 %description
@@ -117,6 +118,7 @@
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
+%patch4 -p1
 cp %{S:6} .
 
 %build

++++++ 0001-mount.nfs-hide-EBUSY-errors.patch ++++++
>From f0dc907b52892c18ccad2e573850583c0ee01157 Mon Sep 17 00:00:00 2001
From: NeilBrown <[email protected]>
Date: Wed, 21 Oct 2015 14:07:52 +1100
Subject: [PATCH] mount.nfs - hide EBUSY errors.

Linux only returns EBUSY for a non-remount mount if the exact
requested filesystem is already mounted.  Arguably this is not an
error.

"mount -a" tries to see if each request filesystem is already mounted.
Sometimes it gets it wrong - e.g. hostname aliases can confuse it.
So "mount -a" will report a failure "already mounted", which is
wrong because it should filter those out.

An easy fix it just to be silent about EBUSY.  As the requested
result (a given filesystem being mounted at a given location) is in
effect after the EBUSY return, we can just treat it as success.

This removed the confusing "already mounted" errors.

Signed-off-by: NeilBrown <[email protected]>
---
 utils/mount/stropts.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
index 86829a902bfd..320dde2fab92 100644
--- a/utils/mount/stropts.c
+++ b/utils/mount/stropts.c
@@ -960,6 +960,15 @@ static int nfsmount_fg(struct nfsmount_info *mi)
                if (nfs_try_mount(mi))
                        return EX_SUCCESS;
 
+               if (errno == EBUSY)
+                       /* The only cause of EBUSY is if exactly the desired
+                        * filesystem is already mounted.  That can arguably
+                        * be seen as success.  "mount -a" tries to optimise
+                        * out this case but sometimes fails.  Help it out
+                        * by pretending everything is rosy
+                        */
+                       return EX_SUCCESS;
+
                if (nfs_is_permanent_error(errno))
                        break;
 
-- 
2.7.2



Reply via email to