Re: [PATCH] barrier patch set

From: Jens Axboe
Date: Sat Mar 20 2004 - 04:58:01 EST


On Fri, Mar 19 2004, Mika Penttil? wrote:
>
>
> Jens Axboe wrote:
>
> >On Fri, Mar 19 2004, Mika Penttil? wrote:
> >
> >
> >>Jens Axboe wrote:
> >>
> >>
> >>
> >>>Hi,
> >>>
> >>>A first release of a collected barrier patchset for 2.6.5-rc1-mm2. I
> >>>have a few changes planned to support dm/md + sata, I'll do those
> >>>changes over the weekend.
> >>>
> >>>Reiser has the best barrier support, ext3 works but only if things don't
> >>>go wrong. So only attempt to use the barrier feature on ext3 if on ide
> >>>drives, not SCSI nor SATA.
> >>>
> >>>
> >>>
> >>>
> >>>
> >>What are these brutal pieces...?
> >>
> >>
> >>+static int ide_transform_pc_req(ide_drive_t *drive, struct request *rq)
> >>+{
> >>+ if (rq->cmd[0] != 0x35) {
> >>+ ide_end_request(drive, 0, 0);
> >>+ return 1;
> >>+ }
> >>+
> >>+ if (!drive->wcache) {
> >>+ ide_end_request(drive, 1, 0);
> >>+ return 1;
> >>+ }
> >>+
> >>+ ide_fill_flush_cmd(drive, rq);
> >>+ return 0;
> >>+}
> >>
> >>
> >>/*
> >>+ * basic transformation support for scsi -> ata commands
> >>+ */
> >>+ if (blk_pc_request(rq)) {
> >>+ if (drive->media != ide_disk)
> >>+ goto kill_rq;
> >>+ if (ide_transform_pc_req(drive, rq))
> >>+ return ide_stopped;
> >>+ }
> >>
> >>
> >
> >Hmm, I thought it was pretty obvious, even just from the naming and
> >comments. Right now, the block layer issued flush without data attached
> >(ie a drive barrier without pinning it to a buffer) comes as a scsi
> >synchronize cache command. I'm going to change this anyways and allow
> >queue hook of a ->issue_flush_fn() that can just tailored to ide or
> >scsi, _or_ dm/md and that sort of thing.
> >
> >
> I mean other BLOCK_PC requests than SYNCHRONIZE CACHE ->
> ide_end_request() and ide_stopped.

That's a bug, good catch. Added to fixme list for next release :)

--
Jens Axboe

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