-static void task_buffer_sectors(ide_drive_t *drive, struct request *rq,
- unsigned nsect, unsigned rw)
-{
- char *buf = rq->buffer + blk_rq_offset(rq);
-
- rq->sector += nsect;
- rq->current_nr_sectors -= nsect;
- rq->nr_sectors -= nsect;
- __task_sectors(drive, buf, nsect, rw);
-}
-
-static inline void task_buffer_multi_sectors(ide_drive_t *drive,
- struct request *rq, unsigned rw)
-{
- unsigned int msect = drive->mult_count, nsect;
-
- nsect = rq->current_nr_sectors;
- if (nsect > msect)
- nsect = msect;
-
- task_buffer_sectors(drive, rq, nsect, rw);
-}
-
-#ifdef CONFIG_IDE_TASKFILE_IO
-static void task_sectors(ide_drive_t *drive, struct request *rq,
- unsigned nsect, unsigned rw)
-{
- if (rq->cbio) { /* fs request */
- rq->errors = 0;
- task_bio_sectors(drive, rq, nsect, rw);
- } else /* task request */
- task_buffer_sectors(drive, rq, nsect, rw);
-}
-
-static inline void task_bio_multi_sectors(ide_drive_t *drive,
- struct request *rq, unsigned rw)
-{
- unsigned int nsect, msect = drive->mult_count;
-
- do {
- nsect = rq->current_nr_sectors;
- if (nsect > msect)
- nsect = msect;
-
- task_bio_sectors(drive, rq, nsect, rw);
-
- if (!rq->nr_sectors)
- msect = 0;
- else
- msect -= nsect;
- } while (msect);
-}
-
-static void task_multi_sectors(ide_drive_t *drive,
- struct request *rq, unsigned rw)
-{
- if (rq->cbio) { /* fs request */
- rq->errors = 0;
- task_bio_multi_sectors(drive, rq, rw);
- } else /* task request */
- task_buffer_multi_sectors(drive, rq, rw);
-}
-#else
-# define task_sectors(d, rq, nsect, rw) task_buffer_sectors(d, rq, nsect, rw)
-# define task_multi_sectors(d, rq, rw) task_buffer_multi_sectors(d, rq, rw)
-#endif /* CONFIG_IDE_TASKFILE_IO */
-