Commit de9587a2 authored by Steffen Maier's avatar Steffen Maier Committed by Martin Schwidefsky

s390/scm_blk: fix endless loop for requests != REQ_TYPE_FS

The while loop only peeks at the top request in the queue but does
not yet consume it. Since we only handle fs requests, we need to
dequeue and complete all other request command types with error
just in case we would ever receive such an unforeseen request.
Signed-off-by: default avatarSteffen Maier <maier@linux.vnet.ibm.com>
Signed-off-by: default avatarSebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 10607864
...@@ -223,8 +223,12 @@ static void scm_blk_request(struct request_queue *rq) ...@@ -223,8 +223,12 @@ static void scm_blk_request(struct request_queue *rq)
int ret; int ret;
while ((req = blk_peek_request(rq))) { while ((req = blk_peek_request(rq))) {
if (req->cmd_type != REQ_TYPE_FS) if (req->cmd_type != REQ_TYPE_FS) {
blk_start_request(req);
blk_dump_rq_flags(req, KMSG_COMPONENT " bad request");
blk_end_request_all(req, -EIO);
continue; continue;
}
if (!scm_permit_request(bdev, req)) { if (!scm_permit_request(bdev, req)) {
scm_ensure_queue_restart(bdev); scm_ensure_queue_restart(bdev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment