}
 }
 
-static int idetape_pipeline_size(ide_drive_t *drive)
-{
-       idetape_tape_t *tape = drive->driver_data;
-       idetape_stage_t *stage;
-       struct request *rq;
-       int size = 0;
-
-       idetape_wait_for_pipeline(drive);
-       stage = tape->first_stage;
-       while (stage != NULL) {
-               rq = &stage->rq;
-               size += tape->blk_size * (rq->nr_sectors -
-                               rq->current_nr_sectors);
-               if (rq->errors == IDETAPE_ERROR_FILEMARK)
-                       size += tape->blk_size;
-               stage = stage->next;
-       }
-       size += tape->merge_stage_size;
-       return size;
-}
-
 /*
  * Rewinds the tape to the Beginning Of the current Partition (BOP). We
  * currently support only one partition.
                idetape_flush_tape_buffers(drive);
        }
        if (cmd == MTIOCGET || cmd == MTIOCPOS) {
-               block_offset = idetape_pipeline_size(drive) /
+               idetape_wait_for_pipeline(drive);
+               block_offset = tape->merge_stage_size /
                        (tape->blk_size * tape->user_bs_factor);
                position = idetape_read_position(drive);
                if (position < 0)