X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=utils%2Fmountd%2Fv4root.c;h=708eb614b92cc88aee2fa752c7cf1abf0a998c3f;hb=c2544b77566690ebec32a2d47c9249548b1a0941;hp=81f813bde067777d4b357c86a2ea30a7d1bf0eee;hpb=cd4f4d13848bd64f98290ef67ef8572d998d3041;p=nfs-utils.git diff --git a/utils/mountd/v4root.c b/utils/mountd/v4root.c index 81f813b..708eb61 100644 --- a/utils/mountd/v4root.c +++ b/utils/mountd/v4root.c @@ -46,6 +46,7 @@ static nfs_export pseudo_root = { .e_nsqgids = 0, .e_fsid = 0, .e_mountpoint = NULL, + .e_ttl = DEFAULT_TTL, }, .m_exported = 0, .m_xtabent = 1, @@ -149,13 +150,13 @@ static int v4root_add_parents(nfs_export *exp) "pseudo export for '%s'", exp->m_export.e_path); return -ENOMEM; } - for (ptr = path + 1; ptr; ptr = strchr(ptr, '/')) { + for (ptr = path; ptr; ptr = strchr(ptr, '/')) { int ret; char saved; saved = *ptr; *ptr = '\0'; - ret = pseudofs_update(hostname, path, exp); + ret = pseudofs_update(hostname, *path ? path : "/", exp); if (ret) return ret; *ptr = saved; @@ -192,6 +193,13 @@ v4root_set() */ continue; + if (strcmp(exp->m_export.e_path, "/") == 0 && + !(exp->m_export.e_flags & NFSEXP_FSID)) { + /* Force '/' to be exported as fsid == 0*/ + exp->m_export.e_flags |= NFSEXP_FSID; + exp->m_export.e_fsid = 0; + } + v4root_add_parents(exp); /* XXX: error handling! */ }