Re: [PATCH] barrier patch set

From: Mika Penttilä
Date: Fri Mar 19 2004 - 13:42:07 EST




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.

--Mika


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