X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=support%2Fnfs%2Fexports.c;h=c250383a1b2fe2ada93bc5c8bf172fc02e3ad49b;hp=551fc0d8400cc57ddfdd846c80e0119210ce69f6;hb=56f537535190d034039570bafd9a0de71b79b8f1;hpb=1ca2e791eee22895907bceac07f2cbd2ea0193e8 diff --git a/support/nfs/exports.c b/support/nfs/exports.c index 551fc0d..c250383 100644 --- a/support/nfs/exports.c +++ b/support/nfs/exports.c @@ -107,6 +107,7 @@ static void init_exportent (struct exportent *ee, int fromkernel) ee->e_nsquids = 0; ee->e_nsqgids = 0; ee->e_uuid = NULL; + ee->e_ttl = DEFAULT_TTL; } struct exportent * @@ -141,9 +142,14 @@ getexportent(int fromkernel, int fromexports) return NULL; } first = 0; - - /* Check for default options */ - if (exp[0] == '-') { + + /* + * Check for default options. The kernel will never have default + * options in /proc/fs/nfs/exports, however due to the initial '-' in + * the -test-client- string from the test export we have to check that + * we're not reading from the kernel. + */ + if (exp[0] == '-' && !fromkernel) { if (parseopts(exp + 1, &def_ee, 0, &has_default_subtree_opts) < 0) return NULL; @@ -332,6 +338,8 @@ dupexportent(struct exportent *dst, struct exportent *src) dst->e_mountpoint = strdup(src->e_mountpoint); if (src->e_fslocdata) dst->e_fslocdata = strdup(src->e_fslocdata); + if (src->e_uuid) + dst->e_uuid = strdup(src->e_uuid); dst->e_hostname = NULL; } @@ -641,12 +649,6 @@ bad_option: cp++; } - /* - * Turn on nohide which will allow this export to cross over - * the 'mount --bind' mount point. - */ - if (ep->e_fslocdata) - setflags(NFSEXP_NOHIDE, active, ep); fix_pseudoflavor_flags(ep); ep->e_squids = squids; ep->e_sqgids = sqgids;