]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - support/nfs/exports.c
nfsd: allow choosing server 41 support at runtime
[nfs-utils.git] / support / nfs / exports.c
index 6acb2b650bee9e9e22755fdc6064c7ba7c0fc448..c96500fdc73a0e09914edf6f4211703d1d84a539 100644 (file)
@@ -142,9 +142,14 @@ getexportent(int fromkernel, int fromexports)
                return NULL;
        }
        first = 0;
-               
-       /* Check for default options */
-       if (exp[0] == '-') {
+
+       /*
+        * Check for default options.  The kernel will never have default
+        * options in /proc/fs/nfs/exports, however due to the initial '-' in
+        * the -test-client- string from the test export we have to check that
+        * we're not reading from the kernel.
+        */
+       if (exp[0] == '-' && !fromkernel) {
                if (parseopts(exp + 1, &def_ee, 0, &has_default_subtree_opts) < 0)
                        return NULL;
                
@@ -779,8 +784,9 @@ struct export_features *get_export_features(void)
        fd = open(path, O_RDONLY);
        if (fd == -1)
                goto good;
-       fd = read(fd, buf, 50);
-       if (fd == -1)
+       c = read(fd, buf, 50);
+       close(fd);
+       if (c == -1)
                goto err;
        c = sscanf(buf, "%x %x", &ef.flags, &ef.secinfo_flags);
        if (c != 2)