Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fa366ad5 authored by Serge E. Hallyn's avatar Serge E. Hallyn Committed by Linus Torvalds
Browse files

[PATCH] kthread: convert smbiod



Update smbiod to use kthread instead of deprecated kernel_thread.

[akpm@osdl.org: cleanup]
Signed-off-by: default avatarSerge E. Hallyn <serue@us.ibm.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent c7b2eff0
Loading
Loading
Loading
Loading
+17 −9
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@
#include <linux/smp_lock.h>
#include <linux/module.h>
#include <linux/net.h>
#include <linux/kthread.h>
#include <net/ip.h>

#include <linux/smb_fs.h>
@@ -40,7 +41,7 @@ enum smbiod_state {
};

static enum smbiod_state smbiod_state = SMBIOD_DEAD;
static pid_t smbiod_pid;
static struct task_struct *smbiod_thread;
static DECLARE_WAIT_QUEUE_HEAD(smbiod_wait);
static LIST_HEAD(smb_servers);
static DEFINE_SPINLOCK(servers_lock);
@@ -67,20 +68,29 @@ void smbiod_wake_up(void)
 */
static int smbiod_start(void)
{
	pid_t pid;
	struct task_struct *tsk;
	int err = 0;

	if (smbiod_state != SMBIOD_DEAD)
		return 0;
	smbiod_state = SMBIOD_STARTING;
	__module_get(THIS_MODULE);
	spin_unlock(&servers_lock);
	pid = kernel_thread(smbiod, NULL, 0);
	if (pid < 0)
	tsk = kthread_run(smbiod, NULL, "smbiod");
	if (IS_ERR(tsk)) {
		err = PTR_ERR(tsk);
		module_put(THIS_MODULE);
	}

	spin_lock(&servers_lock);
	smbiod_state = pid < 0 ? SMBIOD_DEAD : SMBIOD_RUNNING;
	smbiod_pid = pid;
	return pid;
	if (err < 0) {
		smbiod_state = SMBIOD_DEAD;
		smbiod_thread = NULL;
	} else {
		smbiod_state = SMBIOD_RUNNING;
		smbiod_thread = tsk;
	}
	return err;
}

/*
@@ -290,8 +300,6 @@ static void smbiod_doio(struct smb_sb_info *server)
 */
static int smbiod(void *unused)
{
	daemonize("smbiod");

	allow_signal(SIGKILL);

	VERBOSE("SMB Kernel thread starting (%d) ...\n", current->pid);