Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

s390/dasd: fix statistics for recovered requests

When a recovery cqr is cleaned up, copy the start time, stop time,
and start device to the original cqr. These times are needed later
when the original request is finalized and counted in the DASD
statistics.

Signed-off-by: Stefan Weinhuber <wein@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>

authored by

Stefan Weinhuber and committed by
Martin Schwidefsky
fbd70035 0628a5fb

+8
+8
drivers/s390/block/dasd_erp.c
··· 124 124 struct dasd_ccw_req *dasd_default_erp_postaction(struct dasd_ccw_req *cqr) 125 125 { 126 126 int success; 127 + unsigned long long startclk, stopclk; 128 + struct dasd_device *startdev; 127 129 128 130 BUG_ON(cqr->refers == NULL || cqr->function == NULL); 129 131 130 132 success = cqr->status == DASD_CQR_DONE; 133 + startclk = cqr->startclk; 134 + stopclk = cqr->stopclk; 135 + startdev = cqr->startdev; 131 136 132 137 /* free all ERPs - but NOT the original cqr */ 133 138 while (cqr->refers != NULL) { ··· 147 142 } 148 143 149 144 /* set corresponding status to original cqr */ 145 + cqr->startclk = startclk; 146 + cqr->stopclk = stopclk; 147 + cqr->startdev = startdev; 150 148 if (success) 151 149 cqr->status = DASD_CQR_DONE; 152 150 else {