Remove duplicated code.
authorKevin Coffman <kwc@citi.umich.edu>
Thu, 8 Feb 2007 22:27:45 +0000 (17:27 -0500)
committerNeil Brown <neilb@suse.de>
Fri, 9 Feb 2007 00:55:47 +0000 (11:55 +1100)
Signed-off-by: Fred Isaman <iisaman@citi.umich.edu>
Signed-off-by: Kevin Coffman <kwc@citi.umich.edu>
Remove duplicated code.
Signed-off-by: Neil Brown <neilb@suse.de>
utils/mountd/cache.c

index e8d42ae..37e7160 100644 (file)
@@ -236,6 +236,20 @@ void nfsd_fh(FILE *f)
        return;         
 }
 
+static int dump_to_cache(FILE *f, char *domain, char *path, struct exportent *exp)
+{
+       qword_print(f, domain);
+       qword_print(f, path);
+       qword_printint(f, time(0)+30*60);
+       if (exp) {
+               qword_printint(f, exp->e_flags);
+               qword_printint(f, exp->e_anonuid);
+               qword_printint(f, exp->e_anongid);
+               qword_printint(f, exp->e_fsid);
+       }
+       return qword_eol(f);
+}
+
 void nfsd_export(FILE *f)
 {
        /* requests are:
@@ -284,16 +298,12 @@ void nfsd_export(FILE *f)
                }
        }
 
-       qword_print(f, dom);
-       qword_print(f, path);
-       qword_printint(f, time(0)+30*60);
        if (found) {
-               qword_printint(f, found->m_export.e_flags);
-               qword_printint(f, found->m_export.e_anonuid);
-               qword_printint(f, found->m_export.e_anongid);
-               qword_printint(f, found->m_export.e_fsid);
+               dump_to_cache(f, dom, path, &found->m_export);
+               mountlist_add(dom, path);
+       } else {
+               dump_to_cache(f, dom, path, NULL);
        }
-       qword_eol(f);
  out:
        if (dom) free(dom);
        if (path) free(path);
@@ -359,16 +369,9 @@ int cache_export_ent(char *domain, struct exportent *exp)
        if (!f)
                return -1;
 
-       qword_print(f, domain);
-       qword_print(f, exp->e_path);
-       qword_printint(f, time(0)+30*60);
-       qword_printint(f, exp->e_flags);
-       qword_printint(f, exp->e_anonuid);
-       qword_printint(f, exp->e_anongid);
-       qword_printint(f, exp->e_fsid);
-       err = qword_eol(f);
-
+       err = dump_to_cache(f, domain, exp->e_path, exp);
        fclose(f);
+       mountlist_add(domain, exp->e_path);
        return err;
 }