From: Greg KH <greg@kroah.com>
To: Paul Taysom <taysom@chromium.org>
Cc: Mandeep Baines <msb@chromium.org>, Jens Axboe <axboe@kernel.dk>,
Theodore Tso <tytso@google.com>, Andrew Morton <akpm@google.com>,
linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
Alexander Viro <viro@zeniv.linux.org.uk>,
linux-fsdevel@vger.kernel.org, stable@kernel.org
Subject: Re: [PATCH] fs: Fix mod_timer crash when removing USB sticks
Date: Fri, 16 Mar 2012 10:36:10 -0700 [thread overview]
Message-ID: <20120316173610.GA26601@kroah.com> (raw)
In-Reply-To: <1326405431-988-1-git-send-email-taysom@chromium.org>
On Thu, Jan 12, 2012 at 01:57:11PM -0800, Paul Taysom wrote:
> A USB stick with a ext file system on it, would occasionally crash
> when the stick was pulled.
>
> The problem was a timer was being set on the Backing Device Interface,
> bdi, after the USB device had been removed and the bdi had been
> unregistered. The bdi would then be later reinitialized by zeroing
> the timer without removing from the timer from the timer queue.
> This would eventually result in a kernel crash (NULL ptr dereference).
>
> When the bdi is unregistered, the dev field is set to NULL. This
> indication is used by bdi_unregister to only unregister the device
> once.
>
> Fix: When the backing device is invalidated, the mapping backing_dev_info
> should be redirected to the default_backing_dev_info.
>
> Created 3 USB sticks with ext2, ext4 and one with both apple and DOS
> file systems on it. Inserted and removed USB sticks many times in random
> order. With out the bug fix, the kernel would soon crash. With the fix,
> it did not. Ran on both stumpy and amd64-generic.
>
> Signed-off-by: Paul Taysom <taysom@chromium.org>
> Cc: Mandeep Baines <msb@chromium.org>
> Cc: Greg KH <greg@kroah.com>
> Cc: Jens Axboe <axboe@kernel.dk>
> Cc: Theodore Tso <tytso@google.com>
> Cc: Andrew Morton <akpm@google.com>
> Cc: <linux-usb@vger.kernel.org>
> Cc: <linux-kernel@vger.kernel.org>
> Cc: Alexander Viro <viro@zeniv.linux.org.uk>
> Cc: <linux-fsdevel@vger.kernel.org>
> Cc: <stable@kernel.org>
> ---
> fs/block_dev.c | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/fs/block_dev.c b/fs/block_dev.c
> index afe74dd..322cd05 100644
> --- a/fs/block_dev.c
> +++ b/fs/block_dev.c
> @@ -110,6 +110,7 @@ void invalidate_bdev(struct block_device *bdev)
> * But, for the strange corners, lets be cautious
> */
> cleancache_flush_inode(mapping);
> + mapping->backing_dev_info = &default_backing_dev_info;
> }
> EXPORT_SYMBOL(invalidate_bdev);
What ever happened to this patch? Is it still needed? Can you still
reproduce the problem on Linus's tree and older kernels?
thanks,
greg k-h
next prev parent reply other threads:[~2012-03-16 17:36 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-12 21:57 [PATCH] fs: Fix mod_timer crash when removing USB sticks Paul Taysom
2012-03-16 17:36 ` Greg KH [this message]
2012-03-16 19:29 ` Paul Taysom
2012-03-16 19:43 ` Greg KH
2012-03-16 21:10 ` Theodore Tso
2012-03-17 0:06 ` Greg KH
2012-03-17 14:21 ` Alan Stern
2012-03-18 3:44 ` Ted Ts'o
2012-03-18 20:23 ` Alan Stern
2012-03-18 22:25 ` Mandeep Singh Baines
[not found] ` <CACBanvpzOdC4ns-pg1f92ptxrCJ2O=_oJhpKFD4NOB0hyF_+aA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-03-20 0:24 ` Paul Taysom
2012-03-20 2:02 ` Alan Stern
2012-03-22 16:15 ` Paul Taysom
-- strict thread matches above, loose matches on Subject: below --
2012-01-12 21:15 Paul Taysom
2012-01-12 21:38 ` Greg KH
2012-01-12 21:53 ` Mandeep Singh Baines
2012-01-12 22:02 ` Greg KH
[not found] ` <20120112215331.GB18166-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-01-12 22:11 ` Theodore Tso
[not found] ` <CAGagf4dk4KsZSkaWTO9Yegi=_wRJsYBPgfyks1z=wMZJV8gX0w@mail.gmail.com>
2012-01-12 22:35 ` Mandeep Singh Baines
[not found] ` <20120112223544.GC18166-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-01-12 23:23 ` Andrew Morton
[not found] ` <1326402935-31002-1-git-send-email-taysom-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2012-01-13 5:42 ` Josh Boyer
[not found] ` <CA+5PVA7Yffs3-qdq6pSqDKLLngU7kBsdE92e31NnAM0=wrwp4w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-01-13 15:39 ` Paul Taysom
2012-01-12 19:57 Paul Taysom
2012-01-12 20:15 ` Greg KH
2012-01-13 11:28 ` Sergei Shtylyov
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=20120316173610.GA26601@kroah.com \
--to=greg@kroah.com \
--cc=akpm@google.com \
--cc=axboe@kernel.dk \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=msb@chromium.org \
--cc=stable@kernel.org \
--cc=taysom@chromium.org \
--cc=tytso@google.com \
--cc=viro@zeniv.linux.org.uk \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).