summaryrefslogtreecommitdiffstats
path: root/support
diff options
context:
space:
mode:
authorFred Isaman <iisaman@citi.umich.edu>2007-02-27 15:31:04 +1100
committerNeil Brown <neilb@suse.de>2007-02-27 15:31:04 +1100
commit5fe51292e188a4a78dea81c2c13f2dbe614a2536 (patch)
treefa4048cd933a2a38a93a092fce9f4e0a501d2612 /support
parentdf28816565a26386690662ace4d38bb00e090297 (diff)
downloadnfs-utils-5fe51292e188a4a78dea81c2c13f2dbe614a2536.tar.gz
nfs-utils-5fe51292e188a4a78dea81c2c13f2dbe614a2536.tar.xz
nfs-utils-5fe51292e188a4a78dea81c2c13f2dbe614a2536.zip
Extend the exportfs/mountd interface to pass fslocations info into the kernel
Fix up a few issues with the fsloc code. Signed-off-by: Fred Isaman <iisaman@citi.umich.edu> Signed-off-by: Kevin Coffman <kwc@citi.umich.edu> Signed-off-by: Neil Brown <neilb@suse.de>
Diffstat (limited to 'support')
-rw-r--r--support/export/export.c2
-rw-r--r--support/nfs/exports.c4
2 files changed, 6 insertions, 0 deletions
diff --git a/support/export/export.c b/support/export/export.c
index cfb6681..a4b0788 100644
--- a/support/export/export.c
+++ b/support/export/export.c
@@ -240,6 +240,8 @@ export_freeall(void)
xfree(exp->m_export.e_sqgids);
if (exp->m_export.e_mountpoint)
free(exp->m_export.e_mountpoint);
+ if (exp->m_export.e_fslocdata)
+ xfree(exp->m_export.e_fslocdata);
xfree(exp);
}
exportlist[i] = NULL;
diff --git a/support/nfs/exports.c b/support/nfs/exports.c
index 31b38c3..294e1c9 100644
--- a/support/nfs/exports.c
+++ b/support/nfs/exports.c
@@ -236,9 +236,11 @@ putexportent(struct exportent *ep)
case FSLOC_REPLICA:
fprintf(fp, "replicas=%s,", ep->e_fslocdata);
break;
+#ifdef DEBUG
case FSLOC_STUB:
fprintf(fp, "fsloc=stub,");
break;
+#endif
default:
xlog(L_ERROR, "unknown fsloc method for %s:%s",
ep->e_hostname, ep->e_path);
@@ -504,6 +506,7 @@ bad_option:
ep->e_mountpoint = strdup(mp+1);
else
ep->e_mountpoint = strdup("");
+#ifdef DEBUG
} else if (strncmp(opt, "fsloc=", 6) == 0) {
if (strcmp(opt+6, "stub") == 0)
ep->e_fslocmethod = FSLOC_STUB;
@@ -512,6 +515,7 @@ bad_option:
flname, flline, opt);
goto bad_option;
}
+#endif
} else if (strncmp(opt, "refer=", 6) == 0) {
ep->e_fslocmethod = FSLOC_REFER;
ep->e_fslocdata = strdup(opt+6);