|
|
@@ -2307,8 +2307,12 @@ static int _dasd_sleep_on_queue(struct list_head *ccw_queue, int interruptible)
|
|
|
|
|
|
rc = 0;
|
|
|
list_for_each_entry_safe(cqr, n, ccw_queue, blocklist) {
|
|
|
- if (__dasd_sleep_on_erp(cqr))
|
|
|
+ if (__dasd_sleep_on_erp(cqr)) {
|
|
|
+ if (!cqr->status == DASD_CQR_TERMINATED &&
|
|
|
+ !cqr->status == DASD_CQR_NEED_ERP)
|
|
|
+ break;
|
|
|
rc = 1;
|
|
|
+ }
|
|
|
}
|
|
|
if (rc)
|
|
|
goto retry;
|