linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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


  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).