Commit f49169c9 authored by Chuck Lever's avatar Chuck Lever
Browse files

NFSD: Remove svc_serv_ops::svo_module



struct svc_serv_ops is about to be removed.

Neil Brown says:
> I suspect svo_module can go as well - I don't think the thread is
> ever the thing that primarily keeps a module active.

A random sample of kthread_create() callers shows sunrpc is the only
one that manages module reference count in this way.

Suggested-by: default avatarNeil Brown <neilb@suse.de>
Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
parent c7d7ec8f
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -184,8 +184,7 @@ lockd(void *vrqstp)
	dprintk("lockd_down: service stopped\n");

	svc_exit_thread(rqstp);

	module_put_and_kthread_exit(0);
	return 0;
}

static int create_lockd_listener(struct svc_serv *serv, const char *name,
@@ -352,7 +351,6 @@ static struct notifier_block lockd_inet6addr_notifier = {

static const struct svc_serv_ops lockd_sv_ops = {
	.svo_function		= lockd,
	.svo_module		= THIS_MODULE,
};

static int lockd_get(void)
+2 −5
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@
#include <linux/errno.h>
#include <linux/mutex.h>
#include <linux/freezer.h>
#include <linux/kthread.h>
#include <linux/sunrpc/svcauth_gss.h>
#include <linux/sunrpc/bc_xprt.h>

@@ -92,8 +91,8 @@ nfs4_callback_svc(void *vrqstp)
			continue;
		svc_process(rqstp);
	}

	svc_exit_thread(rqstp);
	module_put_and_kthread_exit(0);
	return 0;
}

@@ -136,8 +135,8 @@ nfs41_callback_svc(void *vrqstp)
			finish_wait(&serv->sv_cb_waitq, &wq);
		}
	}

	svc_exit_thread(rqstp);
	module_put_and_kthread_exit(0);
	return 0;
}

@@ -234,12 +233,10 @@ static int nfs_callback_up_net(int minorversion, struct svc_serv *serv,

static const struct svc_serv_ops nfs40_cb_sv_ops = {
	.svo_function		= nfs4_callback_svc,
	.svo_module		= THIS_MODULE,
};
#if defined(CONFIG_NFS_V4_1)
static const struct svc_serv_ops nfs41_cb_sv_ops = {
	.svo_function		= nfs41_callback_svc,
	.svo_module		= THIS_MODULE,
};

static const struct svc_serv_ops *nfs4_cb_sv_ops[] = {
+0 −1
Original line number Diff line number Diff line
@@ -2697,6 +2697,5 @@ static int nfs4_run_state_manager(void *ptr)
	allow_signal(SIGKILL);
	nfs4_state_manager(clp);
	nfs_put_client(clp);
	module_put_and_kthread_exit(0);
	return 0;
}
+0 −3
Original line number Diff line number Diff line
@@ -614,7 +614,6 @@ static int nfsd_get_default_max_blksize(void)

static const struct svc_serv_ops nfsd_thread_sv_ops = {
	.svo_function		= nfsd,
	.svo_module		= THIS_MODULE,
};

void nfsd_shutdown_threads(struct net *net)
@@ -1018,8 +1017,6 @@ nfsd(void *vrqstp)
		msleep(20);
	}

	/* Release module */
	module_put_and_kthread_exit(0);
	return 0;
}

+0 −5
Original line number Diff line number Diff line
@@ -57,11 +57,6 @@ struct svc_serv;
struct svc_serv_ops {
	/* function for service threads to run */
	int		(*svo_function)(void *);

	/* optional module to count when adding threads.
	 * Thread function must call module_put_and_kthread_exit() to exit.
	 */
	struct module	*svo_module;
};

/*
Loading