This will trigger an automount of a subvolume and existing
file handles will continue to work.
Signed-off-by: Richard Weinberger <[email protected]>
---
utils/nfsd/Makefile.am | 6 ++++++
utils/nfsd/nfsd.c | 10 ++++++++++
2 files changed, 16 insertions(+)
diff --git a/utils/nfsd/Makefile.am b/utils/nfsd/Makefile.am
index 8acc9a04..3acc8354 100644
--- a/utils/nfsd/Makefile.am
+++ b/utils/nfsd/Makefile.am
@@ -11,6 +11,12 @@ noinst_HEADERS = nfssvc.h
nfsd_SOURCES = nfsd.c nfssvc.c
nfsd_LDADD = ../../support/nfs/libnfs.la $(LIBTIRPC)
+if CONFIG_REEXPORT
+nfsd_LDADD += ../../support/reexport/libreexport.a $(LIBSQLITE) $(LIBPTHREAD) -lrt
+endif
+
+nfsd_CPPFLAGS = -I$(top_srcdir)/support/reexport
+
MAINTAINERCLEANFILES = Makefile.in
#######################################################################
diff --git a/utils/nfsd/nfsd.c b/utils/nfsd/nfsd.c
index b0741718..b5175f7a 100644
--- a/utils/nfsd/nfsd.c
+++ b/utils/nfsd/nfsd.c
@@ -29,6 +29,7 @@
#include "nfssvc.h"
#include "xlog.h"
#include "xcommon.h"
+#include "reexport.h"
#ifndef NFSD_NPROC
#define NFSD_NPROC 8
@@ -347,6 +348,15 @@ main(int argc, char **argv)
exit(1);
}
+ /*
+ * Make sure that uncovered NFS subvolumes are present such that
+ * existing file handles continue working.
+ */
+ if (reexpdb_init() == 0) {
+ reexpdb_uncover_subvolumes(NULL);
+ reexpdb_destroy();
+ }
+
/* make sure nfsdfs is mounted if it's available */
nfssvc_mount_nfsdfs(progname);
--
2.31.1