X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-kernel.git;a=blobdiff_plain;f=block%2Fblk-core.c;h=a219c8914daa84265710d6448d6a3562bdea9e35;hp=15de223c7f9371a9da852825ea8857789d94ae70;hb=refs%2Fheads%2Fpandora-3.2-.57-wip;hpb=1c5ff0f54dc7f821f3d88b2ddbe0ec623b3317c2;ds=sidebyside diff --git a/block/blk-core.c b/block/blk-core.c index 15de223c7f93..a219c8914daa 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -483,6 +483,7 @@ struct request_queue *blk_alloc_queue_node(gfp_t gfp_mask, int node_id) } if (blk_throtl_init(q)) { + bdi_destroy(&q->backing_dev_info); kmem_cache_free(blk_requestq_cachep, q); return NULL; } @@ -607,7 +608,7 @@ EXPORT_SYMBOL(blk_init_allocated_queue); int blk_get_queue(struct request_queue *q) { - if (likely(!test_bit(QUEUE_FLAG_DEAD, &q->queue_flags))) { + if (likely(!blk_queue_dead(q))) { kobject_get(&q->kobj); return 0; } @@ -754,7 +755,7 @@ static struct request *get_request(struct request_queue *q, int rw_flags, const bool is_sync = rw_is_sync(rw_flags) != 0; int may_queue; - if (unlikely(test_bit(QUEUE_FLAG_DEAD, &q->queue_flags))) + if (unlikely(blk_queue_dead(q))) return NULL; may_queue = elv_may_queue(q, rw_flags); @@ -874,7 +875,7 @@ static struct request *get_request_wait(struct request_queue *q, int rw_flags, struct io_context *ioc; struct request_list *rl = &q->rq; - if (unlikely(test_bit(QUEUE_FLAG_DEAD, &q->queue_flags))) + if (unlikely(blk_queue_dead(q))) return NULL; prepare_to_wait_exclusive(&rl->wait[is_sync], &wait, @@ -2015,6 +2016,7 @@ void blk_start_request(struct request *req) if (unlikely(blk_bidi_rq(req))) req->next_rq->resid_len = blk_rq_bytes(req->next_rq); + BUG_ON(test_bit(REQ_ATOM_COMPLETE, &req->atomic_flags)); blk_add_timer(req); } EXPORT_SYMBOL(blk_start_request);