From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2993156AbXDSIIU (ORCPT ); Thu, 19 Apr 2007 04:08:20 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S2993192AbXDSIGX (ORCPT ); Thu, 19 Apr 2007 04:06:23 -0400 Received: from ebiederm.dsl.xmission.com ([166.70.28.69]:45852 "EHLO ebiederm.dsl.xmission.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2993190AbXDSIGE (ORCPT ); Thu, 19 Apr 2007 04:06:04 -0400 From: "Eric W. Biederman" To: " Cc: , Oleg Nesterov , Christoph Hellwig , , "Eric W. Biederman" , David Woodhouse Subject: [PATCH] mtd_blkdevs: Convert to use the kthread API Date: Thu, 19 Apr 2007 01:58:33 -0600 Message-Id: <11769695552000-git-send-email-ebiederm@xmission.com> X-Mailer: git-send-email 1.5.1.1.g2de0 In-Reply-To: References: Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org From: Eric W. Biederman thread_run is used intead of kernel_thread, daemonize, and mucking around blocking signals directly. CC: David Woodhouse Signed-off-by: Eric W. Biederman --- drivers/mtd/mtd_blkdevs.c | 19 +++++-------------- 1 files changed, 5 insertions(+), 14 deletions(-) diff --git a/drivers/mtd/mtd_blkdevs.c b/drivers/mtd/mtd_blkdevs.c index db7397c..ed71d5e 100644 --- a/drivers/mtd/mtd_blkdevs.c +++ b/drivers/mtd/mtd_blkdevs.c @@ -21,6 +21,7 @@ #include #include #include +#include #include static LIST_HEAD(blktrans_majors); @@ -84,17 +85,6 @@ static int mtd_blktrans_thread(void *arg) /* we might get involved when memory gets low, so use PF_MEMALLOC */ current->flags |= PF_MEMALLOC | PF_NOFREEZE; - daemonize("%sd", tr->name); - - /* daemonize() doesn't do this for us since some kernel threads - actually want to deal with signals. We can't just call - exit_sighand() since that'll cause an oops when we finally - do exit. */ - spin_lock_irq(¤t->sighand->siglock); - sigfillset(¤t->blocked); - recalc_sigpending(); - spin_unlock_irq(¤t->sighand->siglock); - spin_lock_irq(rq->queue_lock); while (!tr->blkcore_priv->exiting) { @@ -368,6 +358,7 @@ static struct mtd_notifier blktrans_notifier = { int register_mtd_blktrans(struct mtd_blktrans_ops *tr) { + struct task_struct *task; int ret, i; /* Register the notifier if/when the first device type is @@ -406,13 +397,13 @@ int register_mtd_blktrans(struct mtd_blktrans_ops *tr) blk_queue_hardsect_size(tr->blkcore_priv->rq, tr->blksize); tr->blkshift = ffs(tr->blksize) - 1; - ret = kernel_thread(mtd_blktrans_thread, tr, CLONE_KERNEL); - if (ret < 0) { + task = kthread_run(mtd_blktrans_thread, tr, "%sd", tr->name); + if (IS_ERR(task)) { blk_cleanup_queue(tr->blkcore_priv->rq); unregister_blkdev(tr->major, tr->name); kfree(tr->blkcore_priv); mutex_unlock(&mtd_table_mutex); - return ret; + return PTR_ERR(task); } INIT_LIST_HEAD(&tr->devs); -- 1.5.0.g53756