From patchwork Thu May 3 18:57:57 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jeff Layton X-Patchwork-Id: 10378983 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 5EE8C60327 for ; Thu, 3 May 2018 18:58:36 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4B1172924F for ; Thu, 3 May 2018 18:58:36 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3FA5429254; Thu, 3 May 2018 18:58:36 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D59012924F for ; Thu, 3 May 2018 18:58:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751538AbeECS6d (ORCPT ); Thu, 3 May 2018 14:58:33 -0400 Received: from mail.kernel.org ([198.145.29.99]:44772 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751324AbeECS6J (ORCPT ); Thu, 3 May 2018 14:58:09 -0400 Received: from tleilax.poochiereds.net (cpe-71-70-156-158.nc.res.rr.com [71.70.156.158]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id D5463217B9; Thu, 3 May 2018 18:58:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1525373889; bh=M7LNtHinvhGIYGBYvGNFABTmiQ/mA2sIjoqVsmbuf3E=; h=From:To:Subject:Date:In-Reply-To:References:From; b=UTe9lbWmumpHQjDCpTV4CZY52w50qLZjiGqhqmYORzHiXkTpR0u4iiBPlC11vrozM 31l4Uhnhvcp6BcD6b7PtRNQO7vDE+FfnZ4cZMEoM+W62zqMahaW4nolEOf1iNi73SY TeIH3m4zDIbqpXzxrfHpZjPLIfHfUpPK/mHBGhrA= From: Jeff Layton To: devel@lists.nfs-ganesha.org, ceph-devel@vger.kernel.org Subject: [nfs-ganesha RFC PATCH v2 07/13] SAL: add new set_enforcing operation Date: Thu, 3 May 2018 14:57:57 -0400 Message-Id: <20180503185803.25417-8-jlayton@kernel.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180503185803.25417-1-jlayton@kernel.org> References: <20180503185803.25417-1-jlayton@kernel.org> Sender: ceph-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: ceph-devel@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Jeff Layton Do that whenever we have started enforcing a local grace period. Change-Id: I559139fc85816cb03171375fdc0e6acc4f2ef9c2 Signed-off-by: Jeff Layton --- src/SAL/nfs4_recovery.c | 14 ++++++++++++++ src/include/sal_functions.h | 3 ++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/SAL/nfs4_recovery.c b/src/SAL/nfs4_recovery.c index cc4f7cf9facf..debc6cab1bdb 100644 --- a/src/SAL/nfs4_recovery.c +++ b/src/SAL/nfs4_recovery.c @@ -110,6 +110,15 @@ nfs_lift_grace_locked(time_t current) } } +/* + * Report our new state to the cluster + */ +static void nfs4_set_enforcing(void) +{ + if (recovery_backend->set_enforcing) + recovery_backend->set_enforcing(); +} + /** * @brief Start grace period * @@ -155,6 +164,11 @@ void nfs_start_grace(nfs_grace_start_t *gsp) LogEvent(COMPONENT_STATE, "NFS Server Now IN GRACE, duration %d", (int)nfs_param.nfsv4_param.grace_period); + + /* Set enforcing flag here */ + if (!was_grace) + nfs4_set_enforcing(); + /* * If we're just starting the grace period, then load the * clid database. Don't load it however if we're extending the diff --git a/src/include/sal_functions.h b/src/include/sal_functions.h index 2829f574c8e7..ac01a6eba497 100644 --- a/src/include/sal_functions.h +++ b/src/include/sal_functions.h @@ -1017,15 +1017,16 @@ typedef rdel_fh_t * (*add_rfh_entry_hook)(clid_entry_t *, char *); struct nfs4_recovery_backend { void (*recovery_init)(void); void (*recovery_shutdown)(void); - void (*end_grace)(void); void (*recovery_read_clids)(nfs_grace_start_t *gsp, add_clid_entry_hook add_clid, add_rfh_entry_hook add_rfh); void (*add_clid)(nfs_client_id_t *); void (*rm_clid)(nfs_client_id_t *); void (*add_revoke_fh)(nfs_client_id_t *, nfs_fh4 *); + void (*end_grace)(void); void (*maybe_start_grace)(void); bool (*try_lift_grace)(void); + void (*set_enforcing)(void); }; void fs_backend_init(struct nfs4_recovery_backend **);