Commit 278c931c authored by Jeff Layton's avatar Jeff Layton Committed by J. Bruce Fields

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: default avatarJeff Layton <jlayton@redhat.com>
Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
parent 8b0554e9
...@@ -486,7 +486,7 @@ nfsd4_check_legacy_client(struct nfs4_client *clp) ...@@ -486,7 +486,7 @@ nfsd4_check_legacy_client(struct nfs4_client *clp)
return 0; return 0;
/* look for it in the reclaim hashtable otherwise */ /* 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); set_bit(NFSD4_CLIENT_STABLE, &clp->cl_flags);
return 0; return 0;
} }
......
...@@ -4537,19 +4537,16 @@ nfs4_release_reclaim(void) ...@@ -4537,19 +4537,16 @@ nfs4_release_reclaim(void)
/* /*
* called from OPEN, CLAIM_PREVIOUS with a new clientid. */ * called from OPEN, CLAIM_PREVIOUS with a new clientid. */
struct nfs4_client_reclaim * struct nfs4_client_reclaim *
nfsd4_find_reclaim_client(struct nfs4_client *clp) nfsd4_find_reclaim_client(const char *recdir)
{ {
unsigned int strhashval; unsigned int strhashval;
struct nfs4_client_reclaim *crp = NULL; struct nfs4_client_reclaim *crp = NULL;
dprintk("NFSD: nfs4_find_reclaim_client for %.*s with recdir %s\n", dprintk("NFSD: nfs4_find_reclaim_client for recdir %s\n", recdir);
clp->cl_name.len, clp->cl_name.data,
clp->cl_recdir);
/* find clp->cl_name in reclaim_str_hashtbl */ strhashval = clientstr_hashval(recdir);
strhashval = clientstr_hashval(clp->cl_recdir);
list_for_each_entry(crp, &reclaim_str_hashtbl[strhashval], cr_strhash) { 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; return crp;
} }
} }
......
...@@ -466,7 +466,7 @@ extern void nfs4_lock_state(void); ...@@ -466,7 +466,7 @@ extern void nfs4_lock_state(void);
extern void nfs4_unlock_state(void); extern void nfs4_unlock_state(void);
extern int nfs4_in_grace(void); extern int nfs4_in_grace(void);
extern void nfs4_release_reclaim(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 __be32 nfs4_check_open_reclaim(clientid_t *clid, bool sessions);
extern void nfs4_free_openowner(struct nfs4_openowner *); extern void nfs4_free_openowner(struct nfs4_openowner *);
extern void nfs4_free_lockowner(struct nfs4_lockowner *); extern void nfs4_free_lockowner(struct nfs4_lockowner *);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment