From patchwork Fri Nov 9 20:06:40 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jeff Layton X-Patchwork-Id: 1721821 Return-Path: X-Original-To: patchwork-linux-nfs@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork1.kernel.org (Postfix) with ESMTP id 2C1543FC8F for ; Fri, 9 Nov 2012 20:06:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755724Ab2KIUG6 (ORCPT ); Fri, 9 Nov 2012 15:06:58 -0500 Received: from mail-vc0-f174.google.com ([209.85.220.174]:61101 "EHLO mail-vc0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755712Ab2KIUG5 (ORCPT ); Fri, 9 Nov 2012 15:06:57 -0500 Received: by mail-vc0-f174.google.com with SMTP id fk26so4183151vcb.19 for ; Fri, 09 Nov 2012 12:06:56 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:x-mailer:in-reply-to :references:x-gm-message-state; bh=CaEr1DoPnQQ7h2PB7H+OPf/qGI6lg7TZSnIatvbn3kE=; b=kPQWUrPfp+glm8wGkOTNLYu8LzE3gbxtGVsjlnjP90fsk5zNYtBJo94mH6jB5MnwAm yjtvOqkOc/s1E8Loh3pfADTnm66Y1FUS2qNApMBbyHkVupupMfxROh5fGkisQuqM9Z3g /90T7EZ0m4rqv+EZmkfTGJrvH5kQBqAlSI59ec5COF5BSPybngA6R7WCeMh2MP9x1ZZk 82EQaAi9ZKYf1qsL+7FbmuRI10kv10N/ZG+nSKGISFcTGRoJrBQzeGz/40FpEpKctXil lVAnDOvMWmHzQmV+ogWfB8fCfEPCPgw1bzYg8t+N9ChkGhjX3GsCwtESsL+lzovNX3A8 AVZw== Received: by 10.52.74.135 with SMTP id t7mr9956339vdv.18.1352491616574; Fri, 09 Nov 2012 12:06:56 -0800 (PST) Received: from salusa.poochiereds.net (cpe-107-015-110-129.nc.res.rr.com. [107.15.110.129]) by mx.google.com with ESMTPS id yf5sm13905869veb.13.2012.11.09.12.06.54 (version=SSLv3 cipher=OTHER); Fri, 09 Nov 2012 12:06:55 -0800 (PST) From: Jeff Layton To: bfields@fieldses.org Cc: linux-nfs@vger.kernel.org Subject: [PATCH RFC 3/7] nfsd: break out reclaim record removal into separate function Date: Fri, 9 Nov 2012 15:06:40 -0500 Message-Id: <1352491604-21605-4-git-send-email-jlayton@redhat.com> X-Mailer: git-send-email 1.7.11.7 In-Reply-To: <1352491604-21605-1-git-send-email-jlayton@redhat.com> References: <1352491604-21605-1-git-send-email-jlayton@redhat.com> X-Gm-Message-State: ALoCoQk/ApH2xoqfxtm7aR6i6n2zBBjIzUCSUrojTojPjl4F3b9W/Y0LimOB08/pwjADCqOEyZ9U Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org We'll need to be able to call this from nfs4recover.c eventually. Signed-off-by: Jeff Layton --- fs/nfsd/nfs4state.c | 12 +++++++++--- fs/nfsd/state.h | 1 + 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index d12f10e..28664de 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -4498,6 +4498,14 @@ nfs4_client_to_reclaim(const char *name) } void +nfs4_remove_reclaim_record(struct nfs4_client_reclaim *crp) +{ + list_del(&crp->cr_strhash); + kfree(crp); + reclaim_str_hashtbl_size--; +} + +void nfs4_release_reclaim(void) { struct nfs4_client_reclaim *crp = NULL; @@ -4507,9 +4515,7 @@ nfs4_release_reclaim(void) while (!list_empty(&reclaim_str_hashtbl[i])) { crp = list_entry(reclaim_str_hashtbl[i].next, struct nfs4_client_reclaim, cr_strhash); - list_del(&crp->cr_strhash); - kfree(crp); - reclaim_str_hashtbl_size--; + nfs4_remove_reclaim_record(crp); } } BUG_ON(reclaim_str_hashtbl_size); diff --git a/fs/nfsd/state.h b/fs/nfsd/state.h index ec01d45..8983169 100644 --- a/fs/nfsd/state.h +++ b/fs/nfsd/state.h @@ -453,6 +453,7 @@ extern __be32 nfs4_preprocess_stateid_op(struct net *net, extern void nfs4_lock_state(void); extern void nfs4_unlock_state(void); extern int nfs4_in_grace(void); +void nfs4_remove_reclaim_record(struct nfs4_client_reclaim *); extern void nfs4_release_reclaim(void); extern struct nfs4_client_reclaim *nfsd4_find_reclaim_client(const char *recdir); extern __be32 nfs4_check_open_reclaim(clientid_t *clid, bool sessions);