[fedfs-utils] [PATCH 4/6] fedfs-domainroot: Do not set "mp" export option

Chuck Lever chuck.lever at oracle.com
Fri Oct 23 12:07:33 PDT 2015


After setting up a new domain root, NFS clients were seeing
NFS4ERR_DELAY repeatedly when trying to access the domain root
export.

Each domain root export is of a bind mount to a directory under
/var/lib/fedfs. This forces the kernel to upcall to see whether
there is a different security policy in effect for each domain
root directory.

The "mp" export option is specified to ensure the bind mount has
completed before the NFS server exports the domain root. Removing
the "mp" export option allows clients to access the domain root
directory.

Bruce Fields observes:

> I guess it's using is_mountpoint() to check whether there's
> something mounted there, and waiting if not.  And is_mountpoint()
> says:
>
> 	We deem it to be a mountpoint if appending a ".." gives a
> 	different device or the same inode number.
>
> And I guess the bind mounts are failing that test.

Eventually the bind mounts should be replaced with something more
robust. But for 0.10-stable, just get rid of the "mp" option.

Signed-off-by: Chuck Lever <chuck.lever at oracle.com>
---
 src/PyFedfs/domainroot/exports.py |    6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/PyFedfs/domainroot/exports.py b/src/PyFedfs/domainroot/exports.py
index 20597dc..cc0b4c0 100644
--- a/src/PyFedfs/domainroot/exports.py
+++ b/src/PyFedfs/domainroot/exports.py
@@ -63,12 +63,10 @@ def add_exports_entry(pathname):
     config.set('/files/etc/exports/dir[last()]/client[1]/option[1]',
                'ro')
     config.set('/files/etc/exports/dir[last()]/client[1]/option[2]',
-               'mp')
-    config.set('/files/etc/exports/dir[last()]/client[1]/option[3]',
                'subtree_check')
-    config.set('/files/etc/exports/dir[last()]/client[1]/option[4]',
+    config.set('/files/etc/exports/dir[last()]/client[1]/option[3]',
                'insecure')
-    config.set('/files/etc/exports/dir[last()]/client[1]/option[5]',
+    config.set('/files/etc/exports/dir[last()]/client[1]/option[4]',
                'sec=sys:none')
 
     ret = EXIT_SUCCESS




More information about the fedfs-utils-devel mailing list