From: Richard Weinberger <richard@nod.at>
To: linux-nfs@vger.kernel.org
Cc: david@sigma-star.at, bfields@fieldses.org,
luis.turcitu@appsbroker.com, david.young@appsbroker.com,
david.oberhollenzer@sigma-star.at,
trond.myklebust@hammerspace.com, anna.schumaker@netapp.com,
chris.chilvers@appsbroker.com,
Richard Weinberger <richard@nod.at>
Subject: [RFC PATCH 5/6] nfsd: statfs() every known subvolume upon start
Date: Thu, 17 Feb 2022 14:15:30 +0100 [thread overview]
Message-ID: <20220217131531.2890-6-richard@nod.at> (raw)
In-Reply-To: <20220217131531.2890-1-richard@nod.at>
This will trigger an automount of a subvolume and existing
file handles will continue to work.
Signed-off-by: Richard Weinberger <richard@nod.at>
---
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
next prev parent reply other threads:[~2022-02-17 13:23 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-17 13:15 [RFC PATCH 0/6] nfs-utils: Improving NFS re-exports Richard Weinberger
2022-02-17 13:15 ` [RFC PATCH 1/6] Implement reexport helper library Richard Weinberger
2022-03-08 21:44 ` J. Bruce Fields
2022-03-09 9:43 ` Richard Weinberger
2022-03-09 14:19 ` bfields
2022-03-09 15:02 ` Richard Weinberger
2022-03-09 15:28 ` bfields
2022-02-17 13:15 ` [RFC PATCH 2/6] exports: Implement new export option reexport= Richard Weinberger
2022-03-08 22:10 ` J. Bruce Fields
2022-03-09 9:43 ` Richard Weinberger
2022-02-17 13:15 ` [RFC PATCH 3/6] export: Implement logic behind reexport= Richard Weinberger
2022-02-17 13:15 ` [RFC PATCH 4/6] export: Record mounted volumes Richard Weinberger
2022-02-17 13:15 ` Richard Weinberger [this message]
2022-02-17 13:15 ` [RFC PATCH 6/6] export: Garbage collect orphaned subvolumes upon start Richard Weinberger
2022-02-17 16:33 ` [RFC PATCH 0/6] nfs-utils: Improving NFS re-exports J. Bruce Fields
2022-02-17 17:27 ` Richard Weinberger
2022-02-17 19:27 ` bfields
2022-02-17 20:15 ` Richard Weinberger
2022-02-17 20:18 ` bfields
2022-02-17 20:29 ` Richard Weinberger
2022-03-07 9:25 ` Richard Weinberger
2022-03-07 22:29 ` bfields
2022-04-19 20:20 ` Steve Dickson
2022-04-19 20:31 ` Richard Weinberger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220217131531.2890-6-richard@nod.at \
--to=richard@nod.at \
--cc=anna.schumaker@netapp.com \
--cc=bfields@fieldses.org \
--cc=chris.chilvers@appsbroker.com \
--cc=david.oberhollenzer@sigma-star.at \
--cc=david.young@appsbroker.com \
--cc=david@sigma-star.at \
--cc=linux-nfs@vger.kernel.org \
--cc=luis.turcitu@appsbroker.com \
--cc=trond.myklebust@hammerspace.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).