summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--support/export/cache.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/support/export/cache.c b/support/export/cache.c
index 42a694d..19bbba5 100644
--- a/support/export/cache.c
+++ b/support/export/cache.c
@@ -778,6 +778,7 @@ static void nfsd_fh(int f)
int dev_missing = 0;
char buf[RPC_CHAN_BUF_SIZE], *bp;
int blen;
+ int did_uncover = 0;
blen = cache_read(f, buf, sizeof(buf));
if (blen <= 0 || buf[blen-1] != '\n') return;
@@ -815,6 +816,11 @@ static void nfsd_fh(int f)
for (exp = exportlist[i].p_head; exp; exp = next_exp) {
char *path;
+ if (!did_uncover && parsed.fsidnum && parsed.fsidtype == FSID_NUM && exp->m_export.e_reexport != REEXP_NONE) {
+ reexpdb_uncover_subvolume(parsed.fsidnum);
+ did_uncover = 1;
+ }
+
if (exp->m_export.e_flags & NFSEXP_CROSSMOUNT) {
static nfs_export *prev = NULL;
static void *mnt = NULL;