Commit 6c0483db authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull nfsd fixes from Chuck Lever:

 - Due to a late review, revert and re-fix a recent crasher fix

* tag 'nfsd-6.10-3' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux:
  Revert "nfsd: fix oops when reading pool_stats before server is started"
  nfsd: initialise nfsd_info.mutex early.
parents cd63a278 ac03629b
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -2169,6 +2169,8 @@ static __net_init int nfsd_net_init(struct net *net)
	nn->nfsd_svcstats.program = &nfsd_program;
	nn->nfsd_versions = NULL;
	nn->nfsd4_minorversions = NULL;
	nn->nfsd_info.mutex = &nfsd_mutex;
	nn->nfsd_serv = NULL;
	nfsd4_init_leases_net(nn);
	get_random_bytes(&nn->siphash_key, sizeof(nn->siphash_key));
	seqlock_init(&nn->writeverf_lock);
+0 −1
Original line number Diff line number Diff line
@@ -672,7 +672,6 @@ int nfsd_create_serv(struct net *net)
		return error;
	}
	spin_lock(&nfsd_notifier_lock);
	nn->nfsd_info.mutex = &nfsd_mutex;
	nn->nfsd_serv = serv;
	spin_unlock(&nfsd_notifier_lock);

+3 −5
Original line number Diff line number Diff line
@@ -1421,13 +1421,12 @@ static void *svc_pool_stats_start(struct seq_file *m, loff_t *pos)

	dprintk("svc_pool_stats_start, *pidx=%u\n", pidx);

	if (!si->serv)
		return NULL;

	mutex_lock(si->mutex);

	if (!pidx)
		return SEQ_START_TOKEN;
	if (!si->serv)
		return NULL;
	return pidx > si->serv->sv_nrpools ? NULL
		: &si->serv->sv_pools[pidx - 1];
}
@@ -1459,7 +1458,6 @@ static void svc_pool_stats_stop(struct seq_file *m, void *p)
{
	struct svc_info *si = m->private;

	if (si->serv)
	mutex_unlock(si->mutex);
}