From patchwork Fri Nov 9 20:06:39 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jeff Layton X-Patchwork-Id: 1721811 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 928A63FCDF for ; Fri, 9 Nov 2012 20:06:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755717Ab2KIUGz (ORCPT ); Fri, 9 Nov 2012 15:06:55 -0500 Received: from mail-vb0-f46.google.com ([209.85.212.46]:43164 "EHLO mail-vb0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755681Ab2KIUGz (ORCPT ); Fri, 9 Nov 2012 15:06:55 -0500 Received: by mail-vb0-f46.google.com with SMTP id ff1so4276477vbb.19 for ; Fri, 09 Nov 2012 12:06:54 -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=vIff2Iss4gm0I+RPxnpYeoYlgmtvFrsiB1miJzj0t1I=; b=A7upgaLzM7bWGUct8K68epwaY8EfT9/CA2Lfub2apJAYhTXo7XNFSVGgOW1Hl6FJj+ w8KWqdpyx1lfSkQfWP1vjyi8euZ7y6rm2svAM0OIdWDVNqCIZQU1AG85P91Eoj3FIATe ri/hCIF5lTRxgohTP7TfL0yLEVhkqTu4ViIHcHdm7UwjVSbLtC6xmwxQNXKfgCzhEgwB Ug49JPDxewwWbRSgBe7QyRqpUBdvt6FZu78MrZ0NMnseHP/UNmwwqIKlT9Us6aTMFEU2 CtYMQcR7ISk7RfeXke8w2k4Dq/A0a+VqqrquozTPWSYVzmc+Lgn7fpY1gcsbqK4LV1en Lzzw== Received: by 10.52.93.238 with SMTP id cx14mr10004600vdb.42.1352491614770; Fri, 09 Nov 2012 12:06:54 -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.52 (version=SSLv3 cipher=OTHER); Fri, 09 Nov 2012 12:06:53 -0800 (PST) From: Jeff Layton To: bfields@fieldses.org Cc: linux-nfs@vger.kernel.org Subject: [PATCH RFC 2/7] nfsd: have nfsd4_find_reclaim_client take a char * argument Date: Fri, 9 Nov 2012 15:06:39 -0500 Message-Id: <1352491604-21605-3-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: ALoCoQl+dBTgX4H8sQ1iWvPLezco2hHTfEqU8L+4pOSyWFUZNBccGhE6EMYW+8+ItKYA78hAWGUV Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Currently, it takes a client pointer, but later we're going to need to search for these records without knowing whether a matching client even exists. Signed-off-by: Jeff Layton --- fs/nfsd/nfs4recover.c | 2 +- fs/nfsd/nfs4state.c | 11 ++++------- fs/nfsd/state.h | 2 +- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/fs/nfsd/nfs4recover.c b/fs/nfsd/nfs4recover.c index 10b7f47..df582fa 100644 --- a/fs/nfsd/nfs4recover.c +++ b/fs/nfsd/nfs4recover.c @@ -485,7 +485,7 @@ nfsd4_check_legacy_client(struct nfs4_client *clp) return 0; /* look for it in the reclaim hashtable otherwise */ - if (nfsd4_find_reclaim_client(clp)) { + if (nfsd4_find_reclaim_client(clp->cl_recdir)) { set_bit(NFSD4_CLIENT_STABLE, &clp->cl_flags); return 0; } diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index f15a2a0..d12f10e 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -4518,19 +4518,16 @@ nfs4_release_reclaim(void) /* * called from OPEN, CLAIM_PREVIOUS with a new clientid. */ struct nfs4_client_reclaim * -nfsd4_find_reclaim_client(struct nfs4_client *clp) +nfsd4_find_reclaim_client(const char *recdir) { unsigned int strhashval; struct nfs4_client_reclaim *crp = NULL; - dprintk("NFSD: nfs4_find_reclaim_client for %.*s with recdir %s\n", - clp->cl_name.len, clp->cl_name.data, - clp->cl_recdir); + dprintk("NFSD: nfs4_find_reclaim_client for recdir %s\n", recdir); - /* find clp->cl_name in reclaim_str_hashtbl */ - strhashval = clientstr_hashval(clp->cl_recdir); + strhashval = clientstr_hashval(recdir); list_for_each_entry(crp, &reclaim_str_hashtbl[strhashval], cr_strhash) { - if (same_name(crp->cr_recdir, clp->cl_recdir)) { + if (same_name(crp->cr_recdir, recdir)) { return crp; } } diff --git a/fs/nfsd/state.h b/fs/nfsd/state.h index bd734f0..ec01d45 100644 --- a/fs/nfsd/state.h +++ b/fs/nfsd/state.h @@ -454,7 +454,7 @@ extern void nfs4_lock_state(void); extern void nfs4_unlock_state(void); extern int nfs4_in_grace(void); extern void nfs4_release_reclaim(void); -extern struct nfs4_client_reclaim *nfsd4_find_reclaim_client(struct nfs4_client *crp); +extern struct nfs4_client_reclaim *nfsd4_find_reclaim_client(const char *recdir); extern __be32 nfs4_check_open_reclaim(clientid_t *clid, bool sessions); extern void nfs4_free_openowner(struct nfs4_openowner *); extern void nfs4_free_lockowner(struct nfs4_lockowner *);