Skip to content

Commit

Permalink
NFSD: Call nfsd4_init_slabs() from init_nfsd()
Browse files Browse the repository at this point in the history
init_nfsd() was calling free_slabs() during cleanup code, but the call
to init_slabs() was hidden in nfsd4_state_init().  This could be
confusing to people unfamiliar with the code.

Signed-off-by: Bryan Schumaker <bjschuma@netapp.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
  • Loading branch information
Bryan Schumaker authored and J. Bruce Fields committed Nov 8, 2011
1 parent 114a0a0 commit 7208339
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 10 deletions.
10 changes: 3 additions & 7 deletions fs/nfsd/nfs4state.c
Original file line number Diff line number Diff line change
Expand Up @@ -2301,7 +2301,7 @@ nfsd4_free_slabs(void)
nfsd4_free_slab(&deleg_slab);
}

static int
int
nfsd4_init_slabs(void)
{
openowner_slab = kmem_cache_create("nfsd4_openowners",
Expand Down Expand Up @@ -4546,14 +4546,11 @@ void nfsd_recall_delegations(u64 num)

/* initialization to perform at module load time: */

int
void
nfs4_state_init(void)
{
int i, status;
int i;

status = nfsd4_init_slabs();
if (status)
return status;
for (i = 0; i < CLIENT_HASH_SIZE; i++) {
INIT_LIST_HEAD(&conf_id_hashtbl[i]);
INIT_LIST_HEAD(&conf_str_hashtbl[i]);
Expand All @@ -4577,7 +4574,6 @@ nfs4_state_init(void)
INIT_LIST_HEAD(&client_lru);
INIT_LIST_HEAD(&del_recall_lru);
reclaim_str_hashtbl_size = 0;
return 0;
}

static void
Expand Down
3 changes: 2 additions & 1 deletion fs/nfsd/nfsctl.c
Original file line number Diff line number Diff line change
Expand Up @@ -1129,9 +1129,10 @@ static int __init init_nfsd(void)
int retval;
printk(KERN_INFO "Installing knfsd (copyright (C) 1996 okir@monad.swb.de).\n");

retval = nfs4_state_init(); /* nfs4 locking state */
retval = nfsd4_init_slabs();
if (retval)
return retval;
nfs4_state_init();
retval = nfsd_fault_inject_init(); /* nfsd fault injection controls */
if (retval)
goto out_free_slabs;
Expand Down
6 changes: 4 additions & 2 deletions fs/nfsd/nfsd.h
Original file line number Diff line number Diff line change
Expand Up @@ -104,14 +104,16 @@ static inline int nfsd_v4client(struct svc_rqst *rq)
*/
#ifdef CONFIG_NFSD_V4
extern unsigned int max_delegations;
int nfs4_state_init(void);
void nfs4_state_init(void);
int nfsd4_init_slabs(void);
void nfsd4_free_slabs(void);
int nfs4_state_start(void);
void nfs4_state_shutdown(void);
void nfs4_reset_lease(time_t leasetime);
int nfs4_reset_recoverydir(char *recdir);
#else
static inline int nfs4_state_init(void) { return 0; }
static inline void nfs4_state_init(void) { }
static inline int nfsd4_init_slabs(void) { return 0; }
static inline void nfsd4_free_slabs(void) { }
static inline int nfs4_state_start(void) { return 0; }
static inline void nfs4_state_shutdown(void) { }
Expand Down

0 comments on commit 7208339

Please sign in to comment.