git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
pandora: defconfig: update
[pandora-kernel.git]
/
block
/
blk-core.c
diff --git
a/block/blk-core.c
b/block/blk-core.c
index
15de223
..
416b263
100644
(file)
--- a/
block/blk-core.c
+++ b/
block/blk-core.c
@@
-235,7
+235,7
@@
EXPORT_SYMBOL(blk_delay_queue);
**/
void blk_start_queue(struct request_queue *q)
{
**/
void blk_start_queue(struct request_queue *q)
{
- WARN_ON(!irqs_disabled());
+ WARN_ON(!i
n_interrupt() && !i
rqs_disabled());
queue_flag_clear(QUEUE_FLAG_STOPPED, q);
__blk_run_queue(q);
queue_flag_clear(QUEUE_FLAG_STOPPED, q);
__blk_run_queue(q);
@@
-483,6
+483,7
@@
struct request_queue *blk_alloc_queue_node(gfp_t gfp_mask, int node_id)
}
if (blk_throtl_init(q)) {
}
if (blk_throtl_init(q)) {
+ bdi_destroy(&q->backing_dev_info);
kmem_cache_free(blk_requestq_cachep, q);
return NULL;
}
kmem_cache_free(blk_requestq_cachep, q);
return NULL;
}
@@
-498,6
+499,9
@@
struct request_queue *blk_alloc_queue_node(gfp_t gfp_mask, int node_id)
kobject_init(&q->kobj, &blk_queue_ktype);
kobject_init(&q->kobj, &blk_queue_ktype);
+#ifdef CONFIG_BLK_DEV_IO_TRACE
+ mutex_init(&q->blk_trace_mutex);
+#endif
mutex_init(&q->sysfs_lock);
spin_lock_init(&q->__queue_lock);
mutex_init(&q->sysfs_lock);
spin_lock_init(&q->__queue_lock);
@@
-607,7
+611,7
@@
EXPORT_SYMBOL(blk_init_allocated_queue);
int blk_get_queue(struct request_queue *q)
{
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;
}
kobject_get(&q->kobj);
return 0;
}
@@
-754,7
+758,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;
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);
return NULL;
may_queue = elv_may_queue(q, rw_flags);
@@
-874,7
+878,7
@@
static struct request *get_request_wait(struct request_queue *q, int rw_flags,
struct io_context *ioc;
struct request_list *rl = &q->rq;
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,
return NULL;
prepare_to_wait_exclusive(&rl->wait[is_sync], &wait,
@@
-2015,6
+2019,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);
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);
blk_add_timer(req);
}
EXPORT_SYMBOL(blk_start_request);
@@
-2075,7
+2080,7
@@
bool blk_update_request(struct request *req, int error, unsigned int nr_bytes)
if (!req->bio)
return false;
if (!req->bio)
return false;
- trace_block_rq_complete(req->q, req);
+ trace_block_rq_complete(req->q, req
, nr_bytes
);
/*
* For fs requests, rq is just carrier of independent bio's
/*
* For fs requests, rq is just carrier of independent bio's