Re: Is warn_on() right reply for i/o error?

From: Jan Kara
Date: Tue Jul 29 2014 - 08:06:01 EST


On Thu 24-07-14 15:29:38, Ted Tso wrote:
> On Thu, Jul 24, 2014 at 05:27:22PM +0200, Pavel Machek wrote:
> > Hi!
> >
> > Just... I know, I should not be unscrewing hard drive cover while
> > operating.
> >
> > But on the other hand... WARN_ON() does not sound like right reply for
> > a disk failure... right?
>
> Actually, it can be worse than that. If a hard drive disappears out
> from under you while writeback is happening, it's possible to get
> crashes in bdi_writeack_workfn() because you can have races between
> bdi_unregister() and bdi_writeback_workfn(), since the latter requeues
> itself and flush_delayed_work() can return while
> bdi_writeback_workfn() is still executing.
This should be fixed by 5acda9d12dcf1ad0d9a5a2a7c646de3472fa7555 I wrote
in April. But there are certainly other races in that code...

> This looks like it's a related problem, where the block device gets
> unregistered (and this happens in the block device layer without it
> telling the file system that the disk drive is about to disappear out
> from under it), and occasionally, Bad Stuff Happens. :-(
Yeah.

Honza
--
Jan Kara <jack@xxxxxxx>
SUSE Labs, CR
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/