Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 130e8867 authored by Bartlomiej Zolnierkiewicz's avatar Bartlomiej Zolnierkiewicz
Browse files

ide: remove ide_end_request()



* Add ide_rq_bytes() helper.

* Add blk_noretry_request() quirk to ide_complete_rq() (currently only fs
  requests can be marked as "noretry" so there is no change in behavior).

* Switch current ide_end_request() users to use ide_complete_rq().

  [ No need to check for rq->nr_sectors == 0 in {ide_dma,task_pio}_intr(),
    nsectors == 0 in cdrom_end_request() and err == 0 in ide_do_devset(). ]

* Remove no longer needed ide_end_request().

There should be no functional changes caused by this patch.

Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent ba7d479c
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -410,7 +410,8 @@ static ide_startstop_t ide_pc_intr(ide_drive_t *drive)
				if (rq->errors == 0)
					rq->errors = -EIO;
			}
			ide_end_request(drive, uptodate, 0);
			ide_complete_rq(drive, uptodate ? 0 : -EIO,
					ide_rq_bytes(rq));
		}

		return ide_stopped;
@@ -469,7 +470,8 @@ static ide_startstop_t ide_pc_intr(ide_drive_t *drive)

		/* FIXME: don't do partial completions */
		if (drive->media == ide_floppy)
			ide_end_request(drive, 1, done >> 9);
			ide_complete_rq(drive, 0,
					done ? done : ide_rq_bytes(rq));
	} else
		xferfunc(drive, NULL, pc->cur_pos, bcount);

+4 −3
Original line number Diff line number Diff line
@@ -298,7 +298,7 @@ static void cdrom_end_request(ide_drive_t *drive, int uptodate)
	if (blk_fs_request(rq) == 0 && uptodate <= 0 && rq->errors == 0)
		rq->errors = -EIO;

	ide_end_request(drive, uptodate, nsectors);
	ide_complete_rq(drive, uptodate ? 0 : -EIO, nsectors << 9);
}

static void ide_dump_status_no_sense(ide_drive_t *drive, const char *msg, u8 st)
@@ -793,10 +793,11 @@ static ide_startstop_t cdrom_newpc_intr(ide_drive_t *drive)
		if (dma_error)
			return ide_error(drive, "dma error", stat);
		if (blk_fs_request(rq)) {
			ide_end_request(drive, 1, rq->nr_sectors);
			ide_complete_rq(drive, 0, rq->nr_sectors
				? (rq->nr_sectors << 9) : ide_rq_bytes(rq));
			return ide_stopped;
		} else if (rq->cmd_type == REQ_TYPE_ATA_PC && !rq->bio) {
			ide_end_request(drive, 1, 1);
			ide_complete_rq(drive, 0, 512);
			return ide_stopped;
		}
		goto end_request;
+1 −3
Original line number Diff line number Diff line
@@ -183,8 +183,6 @@ ide_startstop_t ide_do_devset(ide_drive_t *drive, struct request *rq)
	err = setfunc(drive, *(int *)&rq->cmd[1]);
	if (err)
		rq->errors = err;
	else
		err = 1;
	ide_end_request(drive, err, 0);
	ide_complete_rq(drive, err, ide_rq_bytes(rq));
	return ide_stopped;
}
+1 −1
Original line number Diff line number Diff line
@@ -186,7 +186,7 @@ static ide_startstop_t ide_do_rw_disk(ide_drive_t *drive, struct request *rq,
		blk_dump_rq_flags(rq, "ide_do_rw_disk - bad command");
		if (rq->errors == 0)
			rq->errors = -EIO;
		ide_end_request(drive, 0, 0);
		ide_complete_rq(drive, -EIO, ide_rq_bytes(rq));
		return ide_stopped;
	}

+2 −1
Original line number Diff line number Diff line
@@ -101,7 +101,8 @@ ide_startstop_t ide_dma_intr(ide_drive_t *drive)
			if ((cmd->tf_flags & IDE_TFLAG_FS) == 0)
				ide_finish_cmd(drive, cmd, stat);
			else
				ide_end_request(drive, 1, cmd->rq->nr_sectors);
				ide_complete_rq(drive, 0,
						cmd->rq->nr_sectors << 9);
			return ide_stopped;
		}
		printk(KERN_ERR "%s: %s: bad DMA status (0x%02x)\n",
Loading