diff options
-rw-r--r-- | support/export/cache.c | 6 |
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; |