mountd - better response to failed attempts to export filesystems
authorNeil Brown <neilb@suse.de>
Thu, 29 Mar 2007 03:08:01 +0000 (13:08 +1000)
committerNeil Brown <neilb@suse.de>
Thu, 29 Mar 2007 03:08:01 +0000 (13:08 +1000)
If the kernel rejects an attempt to export a filesystem - e.g. because
it is not exportable, we shouldn't just ignore the error, but rather
should tell the kernel that the relevant filehandle or path cannot be supported.

We should really print out some error messages too.

Signed-off-by: Neil Brown <neilb@suse.de>
utils/mountd/cache.c

index e8d72fa..85e8975 100644 (file)
@@ -469,7 +469,8 @@ void nfsd_fh(FILE *f)
        }
 
        if (found)
-               cache_export_ent(dom, found, found_path);
+               if (cache_export_ent(dom, found, found_path) < 0)
+                       found = 0;
 
        qword_print(f, dom);
        qword_printint(f, fsidtype);
@@ -619,8 +620,10 @@ void nfsd_export(FILE *f)
        }
 
        if (found) {
-               dump_to_cache(f, dom, path, &found->m_export);
-               mountlist_add(dom, path);
+               if (dump_to_cache(f, dom, path, &found->m_export) < 0)
+                       dump_to_cache(f, dom, path, NULL);
+               else
+                       mountlist_add(dom, path);
        } else {
                dump_to_cache(f, dom, path, NULL);
        }