Re: [PATCH] barrier patch set

From: Jens Axboe
Date: Fri Mar 19 2004 - 13:17:13 EST


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.

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