Re: block: silently error unsupported empty barriers too

From: Mike Snitzer
Date: Wed Oct 28 2009 - 17:03:48 EST


On Wed, Oct 28 2009 at 4:19pm -0400,
Andrew Patterson <andrew.patterson@xxxxxx> wrote:

> On Thu, 2009-08-06 at 21:50 -0400, Mikulas Patocka wrote:
> > On Thu, 6 Aug 2009, Alasdair G Kergon wrote:
> >
> > > On Thu, Aug 06, 2009 at 12:14:17PM +0100, Mark McLoughlin wrote:
> > > > We should error all barriers, even empty barriers, on devices like
> > > > virtio_blk which don't support them.
> > >
> > > Have you considered whether or not virtio_blk actually needs to
> > > support empty barriers?
> > >
> > > Alasdair
> >
> > This is only for request-based drivers, where it is the responsibility of
> > blk-core to translate barriers. I think the empty barrier request anyway
> > in blk_do_ordered, but with an error message. So the patch changes it to
> > discard it early and queitly. It seems ok.
> >
> > Mikulas
> > --
>
> This patch seems to have been dropped. I can reproduce the error using
> the following:
>
> 1. Create an LVM logical volume on top of a cciss device (note that
> the cciss driver does not support barriers)
> 2. Create an ext3 file system on top of the logical volume
> 3. Mount the file-system using -obarrier=1
> 4. Copy some files onto the file-system
> 5. Run sync (dm_flush is called)
>
> If I apply the patch (with some munging), the
>
> "end_request: I/O error, dev cciss/cXdY, sector 0"
>
> messages go away.
>
> This is not strictly a regression, given that the problem was introduced
> in 2.6.31, but I think it should still be fixed for 2.6.32.

It was resubmitted last Friday:
http://lkml.org/lkml/2009/10/23/196

And is queued in Jens' 'for-linus' branch (meaning it should get
upstream in time for 2.6.32), see:
http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commit;h=6cafb12dc85a5bdc722791cc5070968413264909

Mike
--
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/