From 0bd51f4c931eb68c355140c721763be64213a3ca Mon Sep 17 00:00:00 2001 From: neilbrown Date: Thu, 20 Dec 2001 02:03:26 +0000 Subject: [PATCH] See Changelog --- ChangeLog | 11 +++++++++++ support/export/client.c | 2 +- support/export/export.c | 2 +- support/export/xtab.c | 2 +- support/include/nfslib.h | 2 +- support/nfs/exports.c | 11 ++++++++++- 6 files changed, 25 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 468c09a..451a783 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2001-12-20 NeilBrown + + * support/export/client.c (client_lookup): use strcasecmp when + comparing host names + * support/nfs/export.c (getexportent): add fromkernel arg and use + different defaults as kernels prior to 2.4.11 assume different + defaults in /proc/fs/nfs/exports + * support/include/nfslib.h, support/export/export.c, + support/export/xtab.c: support extra "fromkernel" arg for + getexportent. + 2001-12-13 Chip Salzenberg * debian/changelog: Version 0.3.3-5. diff --git a/support/export/client.c b/support/export/client.c index da3a976..03f7917 100644 --- a/support/export/client.c +++ b/support/export/client.c @@ -70,7 +70,7 @@ client_lookup(char *hname, int canonical) } } else { for (clp = clientlist[htype]; clp; clp = clp->m_next) { - if (strcmp(hname, clp->m_hostname)==0) + if (strcasecmp(hname, clp->m_hostname)==0) break; } } diff --git a/support/export/export.c b/support/export/export.c index 4cfb448..f95e729 100644 --- a/support/export/export.c +++ b/support/export/export.c @@ -32,7 +32,7 @@ export_read(char *fname) nfs_export *exp; setexportent(fname, "r"); - while ((eep = getexportent()) != NULL) { + while ((eep = getexportent(0)) != NULL) { exp = export_lookup(eep->e_hostname, eep->e_path, 0); if (!exp) export_create(eep,0); diff --git a/support/export/xtab.c b/support/export/xtab.c index 54470c1..4daef00 100644 --- a/support/export/xtab.c +++ b/support/export/xtab.c @@ -32,7 +32,7 @@ xtab_read(char *xtab, int is_export) if ((lockid = xflock(xtab, "r")) < 0) return 0; setexportent(xtab, "r"); - while ((xp = getexportent()) != NULL) { + while ((xp = getexportent(is_export==0)) != NULL) { if (!(exp = export_lookup(xp->e_hostname, xp->e_path, is_export != 1)) && !(exp = export_create(xp, is_export!=1))) { continue; diff --git a/support/include/nfslib.h b/support/include/nfslib.h index 8736d49..92eb900 100644 --- a/support/include/nfslib.h +++ b/support/include/nfslib.h @@ -84,7 +84,7 @@ struct rmtabent { * configuration file parsing */ void setexportent(char *fname, char *type); -struct exportent * getexportent(void); +struct exportent * getexportent(int); void putexportent(struct exportent *xep); void endexportent(void); struct exportent * mkexportent(char *hname, char *path, char *opts); diff --git a/support/nfs/exports.c b/support/nfs/exports.c index 0c25277..7e0decf 100644 --- a/support/nfs/exports.c +++ b/support/nfs/exports.c @@ -61,7 +61,7 @@ setexportent(char *fname, char *type) } struct exportent * -getexportent(void) +getexportent(int fromkernel) { static struct exportent ee; char exp[512]; @@ -74,6 +74,15 @@ getexportent(void) freesquash(); ee.e_flags = EXPORT_DEFAULT_FLAGS; + /* some kernels assume the default is sync rather than + * async. More recent kernels always report one or other, + * but this test makes sure we assume same as kernel + * Ditto for wgather + */ + if (fromkernel) { + ee.e_flags &= ~NFSEXP_ASYNC; + ee.e_flags &= ~NFSEXP_GATHERED_WRITES; + } ee.e_maptype = CLE_MAP_IDENT; ee.e_anonuid = -2; ee.e_anongid = -2; -- 2.39.5