lkml.org 
[lkml]   [2004]   [Mar]   [19]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateFri, 19 Mar 2004 19:16:16 +0100
FromJens Axboe <>
SubjectRe: [PATCH] barrier patch set
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@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:01    [from the cache]
©2003-2008