OSDN Git Service

l2t_seq_next should increase position index
[sagit-ice-cold/kernel_xiaomi_msm8998.git] / block / blk-core.c
index 1196585..7662f97 100644 (file)
@@ -526,8 +526,8 @@ void blk_set_queue_dying(struct request_queue *q)
 
                blk_queue_for_each_rl(rl, q) {
                        if (rl->rq_pool) {
-                               wake_up(&rl->wait[BLK_RW_SYNC]);
-                               wake_up(&rl->wait[BLK_RW_ASYNC]);
+                               wake_up_all(&rl->wait[BLK_RW_SYNC]);
+                               wake_up_all(&rl->wait[BLK_RW_ASYNC]);
                        }
                }
        }
@@ -651,21 +651,17 @@ EXPORT_SYMBOL(blk_alloc_queue);
 int blk_queue_enter(struct request_queue *q, gfp_t gfp)
 {
        while (true) {
-               int ret;
-
                if (percpu_ref_tryget_live(&q->q_usage_counter))
                        return 0;
 
                if (!gfpflags_allow_blocking(gfp))
                        return -EBUSY;
 
-               ret = wait_event_interruptible(q->mq_freeze_wq,
-                               !atomic_read(&q->mq_freeze_depth) ||
-                               blk_queue_dying(q));
+               wait_event(q->mq_freeze_wq,
+                          !atomic_read(&q->mq_freeze_depth) ||
+                          blk_queue_dying(q));
                if (blk_queue_dying(q))
                        return -ENODEV;
-               if (ret)
-                       return ret;
        }
 }
 
@@ -874,6 +870,7 @@ blk_init_allocated_queue(struct request_queue *q, request_fn_proc *rfn,
 
 fail:
        blk_free_flush_queue(q->fq);
+       q->fq = NULL;
        return NULL;
 }
 EXPORT_SYMBOL(blk_init_allocated_queue);