]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - block/bfq-iosched.c
bfq-iosched: ensure to clear bic/bfqq pointers when preparing request
[mirror_ubuntu-bionic-kernel.git] / block / bfq-iosched.c
index bcb6d21baf1269becc997c50a72bd53fd5e20c4c..58e5c7cfa4ea6eb51aa5089c8b3f77793115721b 100644 (file)
@@ -4640,8 +4640,16 @@ static void bfq_prepare_request(struct request *rq, struct bio *bio)
        bool new_queue = false;
        bool bfqq_already_existing = false, split = false;
 
-       if (!rq->elv.icq)
+       /*
+        * Even if we don't have an icq attached, we should still clear
+        * the scheduler pointers, as they might point to previously
+        * allocated bic/bfqq structs.
+        */
+       if (!rq->elv.icq) {
+               rq->elv.priv[0] = rq->elv.priv[1] = NULL;
                return;
+       }
+
        bic = icq_to_bic(rq->elv.icq);
 
        spin_lock_irq(&bfqd->lock);