summaryrefslogtreecommitdiffstats
path: root/utils/mountd
diff options
context:
space:
mode:
authorKevin Coffman <kwc@citi.umich.edu>2007-02-08 17:27:45 -0500
committerNeil Brown <neilb@suse.de>2007-02-09 11:55:47 +1100
commitdbfcba5b03481d49f3e78946fe8fd066e2025545 (patch)
treedef2853fa5b0743aff0fd8a1ae88dee833c4cf97 /utils/mountd
parent27b9c1633398fe605d35da74318f96731506059e (diff)
downloadnfs-utils-dbfcba5b03481d49f3e78946fe8fd066e2025545.tar.gz
nfs-utils-dbfcba5b03481d49f3e78946fe8fd066e2025545.tar.xz
nfs-utils-dbfcba5b03481d49f3e78946fe8fd066e2025545.zip
Remove duplicated code.
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>
Diffstat (limited to 'utils/mountd')
-rw-r--r--utils/mountd/cache.c37
1 files changed, 20 insertions, 17 deletions
diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c
index e8d42ae..37e7160 100644
--- a/utils/mountd/cache.c
+++ b/utils/mountd/cache.c
@@ -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;
}