This is the last global stat, move it into nfsd_net and adjust all the users to use that variant instead of the global one. Signed-off-by: Josef Bacik <josef@xxxxxxxxxxxxxx> --- fs/nfsd/netns.h | 3 +++ fs/nfsd/nfssvc.c | 4 ++-- fs/nfsd/stats.c | 4 ++-- fs/nfsd/stats.h | 6 ------ 4 files changed, 7 insertions(+), 10 deletions(-) diff --git a/fs/nfsd/netns.h b/fs/nfsd/netns.h index 0cef4bb407a9..8d3f4cb7cab4 100644 --- a/fs/nfsd/netns.h +++ b/fs/nfsd/netns.h @@ -179,6 +179,9 @@ struct nfsd_net { /* Per-netns stats counters */ struct percpu_counter counter[NFSD_STATS_COUNTERS_NUM]; + /* number of available threads */ + atomic_t th_cnt; + /* longest hash chain seen */ unsigned int longest_chain; diff --git a/fs/nfsd/nfssvc.c b/fs/nfsd/nfssvc.c index d98a6abad990..0961b95dcef6 100644 --- a/fs/nfsd/nfssvc.c +++ b/fs/nfsd/nfssvc.c @@ -924,7 +924,7 @@ nfsd(void *vrqstp) current->fs->umask = 0; - atomic_inc(&nfsdstats.th_cnt); + atomic_inc(&nn->th_cnt); set_freezable(); @@ -940,7 +940,7 @@ nfsd(void *vrqstp) nfsd_file_net_dispose(nn); } - atomic_dec(&nfsdstats.th_cnt); + atomic_dec(&nn->th_cnt); out: /* Release the thread */ diff --git a/fs/nfsd/stats.c b/fs/nfsd/stats.c index 44e275324b06..360e6dbf4e5c 100644 --- a/fs/nfsd/stats.c +++ b/fs/nfsd/stats.c @@ -27,7 +27,6 @@ #include "nfsd.h" -struct nfsd_stats nfsdstats; struct svc_stat nfsd_svcstats = { .program = &nfsd_program, }; @@ -47,7 +46,7 @@ static int nfsd_show(struct seq_file *seq, void *v) percpu_counter_sum_positive(&nn->counter[NFSD_STATS_IO_WRITE])); /* thread usage: */ - seq_printf(seq, "th %u 0", atomic_read(&nfsdstats.th_cnt)); + seq_printf(seq, "th %u 0", atomic_read(&nn->th_cnt)); /* deprecated thread usage histogram stats */ for (i = 0; i < 10; i++) @@ -112,6 +111,7 @@ void nfsd_percpu_counters_destroy(struct percpu_counter counters[], int num) int nfsd_stat_counters_init(struct nfsd_net *nn) { + atomic_set(&nn->th_cnt, 0); return nfsd_percpu_counters_init(nn->counter, NFSD_STATS_COUNTERS_NUM); } diff --git a/fs/nfsd/stats.h b/fs/nfsd/stats.h index c24be4ddbe7d..5675d283a537 100644 --- a/fs/nfsd/stats.h +++ b/fs/nfsd/stats.h @@ -10,12 +10,6 @@ #include <uapi/linux/nfsd/stats.h> #include <linux/percpu_counter.h> -struct nfsd_stats { - atomic_t th_cnt; /* number of available threads */ -}; - -extern struct nfsd_stats nfsdstats; - extern struct svc_stat nfsd_svcstats; int nfsd_percpu_counters_init(struct percpu_counter *counters, int num); -- 2.43.0