/* * Post finished request. */ static void __tapeblock_end_request(struct tape_request *ccw_req, void *data) { struct tape_device *device; struct request *req; DBF_LH(6, "__tapeblock_end_request()\n"); device = ccw_req->device; req = (struct request *) data; blk_end_request_all(req, (ccw_req->rc == 0) ? 0 : -EIO); if (ccw_req->rc == 0) /* Update position. */ device->blk_data.block_position = (blk_rq_pos(req) + blk_rq_sectors(req)) >> TAPEBLOCK_HSEC_S2B; else
static void __tapeblock_end_request(struct tape_request *ccw_req, void *data) { struct tape_device *device; struct request *req; DBF_LH(6, "__tapeblock_end_request()\n"); device = ccw_req->device; req = (struct request *) data; tapeblock_end_request(req, ccw_req->rc == 0); if (ccw_req->rc == 0) /* Update position. */ device->blk_data.block_position = (req->sector + req->nr_sectors) >> TAPEBLOCK_HSEC_S2B; else