Thread (39 messages) 39 messages, 11 authors, 2005-05-27

Re: [PATCH] libata: device suspend/resume

From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Date: 2005-05-26 22:56:20
Also in: linux-scsi

Nice work Jens, some feedback below:

On 5/25/05, Jens Axboe [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Index: drivers/ide/ide-floppy.c
===================================================================
--- 137318b273db26b889675101fbd02d2e84cae5e3/drivers/ide/ide-floppy.c  (mode:100644)
+++ uncommitted/drivers/ide/ide-floppy.c  (mode:100644)
quoted hunk ↗ jump to hunk
@@ -1311,9 +1311,9 @@
                }
                pc = idefloppy_next_pc_storage(drive);
                idefloppy_create_rw_cmd(floppy, pc, rq, block);
-       } else if (rq->flags & REQ_SPECIAL) {
+       } else if (blk_special_request(rq))
                pc = (idefloppy_pc_t *) rq->buffer;
-       } else if (rq->flags & REQ_BLOCK_PC) {
+       } else if (blk_fs_request(rq)) {
                pc = idefloppy_next_pc_storage(drive);
                if (idefloppy_blockpc_cmd(floppy, pc, rq)) {
                        idefloppy_do_end_request(drive, 0, 0);
blk_pc_request(rq)
quoted hunk ↗ jump to hunk
Index: drivers/ide/ide-io.c
===================================================================
--- 137318b273db26b889675101fbd02d2e84cae5e3/drivers/ide/ide-io.c  (mode:100644)
+++ uncommitted/drivers/ide/ide-io.c  (mode:100644)
quoted hunk ↗ jump to hunk
@@ -948,9 +948,10 @@
        if (!drive->special.all) {
                ide_driver_t *drv;

-               if (rq->flags & (REQ_DRIVE_CMD | REQ_DRIVE_TASK))
+               if (rq->cmd_type == REQ_TYPE_ATA_CMD ||
+                   rq->cmd_type == REQ_TYPE_ATA_TASK)
                        return execute_drive_cmd(drive, rq);
-               else if (rq->flags & REQ_DRIVE_TASKFILE)
+               else if (rq->cmd_type == REQ_TYPE_ATA_TASKFILE)
                        return execute_drive_cmd(drive, rq);
                else if (blk_pm_request(rq)) {
 #ifdef DEBUG_PM
|| rq->cmd_type == REQ_TYPE_ATA_TASKFILE while at it
quoted hunk ↗ jump to hunk
Index: drivers/scsi/ide-scsi.c
===================================================================
--- 137318b273db26b889675101fbd02d2e84cae5e3/drivers/scsi/ide-scsi.c  (mode:100644)
+++ uncommitted/drivers/scsi/ide-scsi.c  (mode:100644)
quoted hunk ↗ jump to hunk
@@ -370,12 +370,12 @@
        u8 *scsi_buf;
        unsigned long flags;

-       if (!(rq->flags & (REQ_SPECIAL|REQ_SENSE))) {
+       if (!blk_special_request(rq) || !blk_sense_request(rq)) {
                ide_end_request(drive, uptodate, nrsecs);
                return 0;
        }
!blk_special_request(rq) && !blk_sense_request(rq)
quoted hunk ↗ jump to hunk
Index: drivers/scsi/scsi_lib.c
===================================================================
--- 137318b273db26b889675101fbd02d2e84cae5e3/drivers/scsi/scsi_lib.c  (mode:100644)
+++ uncommitted/drivers/scsi/scsi_lib.c  (mode:100644)
quoted hunk ↗ jump to hunk
@@ -922,7 +922,7 @@
        /*
         * if this is a rq->data based REQ_BLOCK_PC, setup for a non-sg xfer
         */
-       if ((req->flags & REQ_BLOCK_PC) && !req->bio) {
+       if (blk_pc_request(req) && req->bio) {
                cmd->request_bufflen = req->data_len;
                cmd->request_buffer = req->data;
                req->buffer = req->data;
!req->bio


I assume they you've verified that there are no odd cases possible like
rq->flags = REQ_DRIVE_TASKFILE | REQ_BAR_FLUSH or rq->flags = REQ_PC
(without REQ_BLOCK_PC) which would be obviously broken by this patch?

Bartlomiej
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help