From: Jens Axboe <axboe@suse.de>
To: Giancarlo Formicuccia <giancarlo.formicuccia@gmail.com>
Cc: linux-kernel@vger.kernel.org, Andrew Morton <akpm@osdl.org>
Subject: Re: [2.6.13] task_struct->fs_excl, kernel_thread and jffs2
Date: Thu, 8 Sep 2005 10:15:21 +0200 [thread overview]
Message-ID: <20050908081520.GH4893@suse.de> (raw)
In-Reply-To: <200509080947.58155.giancarlo.formicuccia@gmail.com>
On Thu, Sep 08 2005, Giancarlo Formicuccia wrote:
> Hi,
> [please CC me in any reply]
> I'm not sure that dup_task_struct() must copy the fs_excl field. This can leads to
> problems if do_fork() is somehow called while fs_excl!=0.
> For example, the jffs2 code creates a kernel thread (jffs2_garbage_collect_thread)
> in a path where lock_super() is held (i.e. by do_remount_sb, during -o remount,rw).
> When the new thread expires, a badness happens (kernel/exit.c:787). This problem
> was observed by a couple of people and can be easily reproduced:
> http://lists.infradead.org/pipermail/linux-mtd/2005-August/013487.html
> http://lists.arm.linux.org.uk/pipermail/linux-arm-kernel/2005-September/031109.html
>
> At first glance, I'd simply set fs_excl to 0 for every new thread in dup_task_struct:
>
> --- linux-2.6.13/kernel/fork.c 2005-08-29 01:41:01.000000000 +0200
> +++ linux-2.6.13-new/kernel/fork.c 2005-09-07 17:06:23.000000000 +0200
> @@ -173,6 +173,7 @@ static struct task_struct *dup_task_stru
> *tsk = *orig;
> tsk->thread_info = ti;
> ti->task = tsk;
> + atomic_set(&tsk->fs_excl, 0);
>
> /* One for us, one for whoever does the "release_task()" (usually parent) */
> atomic_set(&tsk->usage,2);
>
> but I've a doubt about the WARN_ON in exit.c being actually here to report these
> kernel_thread() users (like jffs2)...
>
> Any comment/suggestion?
Patch is correct, that is definitely an oversight!
Acked-by: Jens Axboe <axboe@suse.de>
--
Jens Axboe
prev parent reply other threads:[~2005-09-08 8:15 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-09-08 7:47 [2.6.13] task_struct->fs_excl, kernel_thread and jffs2 Giancarlo Formicuccia
2005-09-08 8:15 ` Jens Axboe [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050908081520.GH4893@suse.de \
--to=axboe@suse.de \
--cc=akpm@osdl.org \
--cc=giancarlo.formicuccia@gmail.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.