aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorJeff Layton <jlayton@redhat.com>2012-11-12 15:00:52 -0500
committerJ. Bruce Fields <bfields@redhat.com>2012-11-12 18:55:11 -0500
commit278c931cb05ae624df8c82b6bdfbb0e03392cde7 (patch)
tree95a118939afae6fb4d88184979d38e4d373001fb /fs
parent8b0554e9a24298c91de89a779a714c87073380a2 (diff)
nfsd: have nfsd4_find_reclaim_client take a char * argument
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 <jlayton@redhat.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/nfsd/nfs4recover.c2
-rw-r--r--fs/nfsd/nfs4state.c11
-rw-r--r--fs/nfsd/state.h2
3 files changed, 6 insertions, 9 deletions
diff --git a/fs/nfsd/nfs4recover.c b/fs/nfsd/nfs4recover.c
index 6aaf5d92a43..4e92fb38cfb 100644
--- a/fs/nfsd/nfs4recover.c
+++ b/fs/nfsd/nfs4recover.c
@@ -486,7 +486,7 @@ nfsd4_check_legacy_client(struct nfs4_client *clp)
486 return 0; 486 return 0;
487 487
488 /* look for it in the reclaim hashtable otherwise */ 488 /* look for it in the reclaim hashtable otherwise */
489 if (nfsd4_find_reclaim_client(clp)) { 489 if (nfsd4_find_reclaim_client(clp->cl_recdir)) {
490 set_bit(NFSD4_CLIENT_STABLE, &clp->cl_flags); 490 set_bit(NFSD4_CLIENT_STABLE, &clp->cl_flags);
491 return 0; 491 return 0;
492 } 492 }
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index d6b602a9265..18e554942da 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -4537,19 +4537,16 @@ nfs4_release_reclaim(void)
4537/* 4537/*
4538 * called from OPEN, CLAIM_PREVIOUS with a new clientid. */ 4538 * called from OPEN, CLAIM_PREVIOUS with a new clientid. */
4539struct nfs4_client_reclaim * 4539struct nfs4_client_reclaim *
4540nfsd4_find_reclaim_client(struct nfs4_client *clp) 4540nfsd4_find_reclaim_client(const char *recdir)
4541{ 4541{
4542 unsigned int strhashval; 4542 unsigned int strhashval;
4543 struct nfs4_client_reclaim *crp = NULL; 4543 struct nfs4_client_reclaim *crp = NULL;
4544 4544
4545 dprintk("NFSD: nfs4_find_reclaim_client for %.*s with recdir %s\n", 4545 dprintk("NFSD: nfs4_find_reclaim_client for recdir %s\n", recdir);
4546 clp->cl_name.len, clp->cl_name.data,
4547 clp->cl_recdir);
4548 4546
4549 /* find clp->cl_name in reclaim_str_hashtbl */ 4547 strhashval = clientstr_hashval(recdir);
4550 strhashval = clientstr_hashval(clp->cl_recdir);
4551 list_for_each_entry(crp, &reclaim_str_hashtbl[strhashval], cr_strhash) { 4548 list_for_each_entry(crp, &reclaim_str_hashtbl[strhashval], cr_strhash) {
4552 if (same_name(crp->cr_recdir, clp->cl_recdir)) { 4549 if (same_name(crp->cr_recdir, recdir)) {
4553 return crp; 4550 return crp;
4554 } 4551 }
4555 } 4552 }
diff --git a/fs/nfsd/state.h b/fs/nfsd/state.h
index 8053b574796..c41c28020ca 100644
--- a/fs/nfsd/state.h
+++ b/fs/nfsd/state.h
@@ -466,7 +466,7 @@ extern void nfs4_lock_state(void);
466extern void nfs4_unlock_state(void); 466extern void nfs4_unlock_state(void);
467extern int nfs4_in_grace(void); 467extern int nfs4_in_grace(void);
468extern void nfs4_release_reclaim(void); 468extern void nfs4_release_reclaim(void);
469extern struct nfs4_client_reclaim *nfsd4_find_reclaim_client(struct nfs4_client *crp); 469extern struct nfs4_client_reclaim *nfsd4_find_reclaim_client(const char *recdir);
470extern __be32 nfs4_check_open_reclaim(clientid_t *clid, bool sessions); 470extern __be32 nfs4_check_open_reclaim(clientid_t *clid, bool sessions);
471extern void nfs4_free_openowner(struct nfs4_openowner *); 471extern void nfs4_free_openowner(struct nfs4_openowner *);
472extern void nfs4_free_lockowner(struct nfs4_lockowner *); 472extern void nfs4_free_lockowner(struct nfs4_lockowner *);