aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2011-04-16 13:33:41 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2011-04-16 13:33:41 -0400
commitd733ed6c34be3aef0517a04e4103eed6b369ec50 (patch)
treeb49723304c48c2f877b9cb284a4b39361934c670 /include
parent08150c533c57981054324b9e87dbf686006d890f (diff)
parent49cac01e1fa74174d72adb0e872504a7fefd7c01 (diff)
Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block
* 'for-linus' of git://git.kernel.dk/linux-2.6-block: block: make unplug timer trace event correspond to the schedule() unplug block: let io_schedule() flush the plug inline
Diffstat (limited to 'include')
-rw-r--r--include/linux/blkdev.h13
-rw-r--r--include/trace/events/block.h13
2 files changed, 20 insertions, 6 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 1c76506fcf11..ec0357d8c4a5 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -872,6 +872,14 @@ static inline void blk_flush_plug(struct task_struct *tsk)
872 struct blk_plug *plug = tsk->plug; 872 struct blk_plug *plug = tsk->plug;
873 873
874 if (plug) 874 if (plug)
875 blk_flush_plug_list(plug, false);
876}
877
878static inline void blk_schedule_flush_plug(struct task_struct *tsk)
879{
880 struct blk_plug *plug = tsk->plug;
881
882 if (plug)
875 blk_flush_plug_list(plug, true); 883 blk_flush_plug_list(plug, true);
876} 884}
877 885
@@ -1317,6 +1325,11 @@ static inline void blk_flush_plug(struct task_struct *task)
1317{ 1325{
1318} 1326}
1319 1327
1328static inline void blk_schedule_flush_plug(struct task_struct *task)
1329{
1330}
1331
1332
1320static inline bool blk_needs_flush_plug(struct task_struct *tsk) 1333static inline bool blk_needs_flush_plug(struct task_struct *tsk)
1321{ 1334{
1322 return false; 1335 return false;
diff --git a/include/trace/events/block.h b/include/trace/events/block.h
index 006e60b58306..bf366547da25 100644
--- a/include/trace/events/block.h
+++ b/include/trace/events/block.h
@@ -401,9 +401,9 @@ TRACE_EVENT(block_plug,
401 401
402DECLARE_EVENT_CLASS(block_unplug, 402DECLARE_EVENT_CLASS(block_unplug,
403 403
404 TP_PROTO(struct request_queue *q, unsigned int depth), 404 TP_PROTO(struct request_queue *q, unsigned int depth, bool explicit),
405 405
406 TP_ARGS(q, depth), 406 TP_ARGS(q, depth, explicit),
407 407
408 TP_STRUCT__entry( 408 TP_STRUCT__entry(
409 __field( int, nr_rq ) 409 __field( int, nr_rq )
@@ -419,18 +419,19 @@ DECLARE_EVENT_CLASS(block_unplug,
419); 419);
420 420
421/** 421/**
422 * block_unplug_io - release of operations requests in request queue 422 * block_unplug - release of operations requests in request queue
423 * @q: request queue to unplug 423 * @q: request queue to unplug
424 * @depth: number of requests just added to the queue 424 * @depth: number of requests just added to the queue
425 * @explicit: whether this was an explicit unplug, or one from schedule()
425 * 426 *
426 * Unplug request queue @q because device driver is scheduled to work 427 * Unplug request queue @q because device driver is scheduled to work
427 * on elements in the request queue. 428 * on elements in the request queue.
428 */ 429 */
429DEFINE_EVENT(block_unplug, block_unplug_io, 430DEFINE_EVENT(block_unplug, block_unplug,
430 431
431 TP_PROTO(struct request_queue *q, unsigned int depth), 432 TP_PROTO(struct request_queue *q, unsigned int depth, bool explicit),
432 433
433 TP_ARGS(q, depth) 434 TP_ARGS(q, depth, explicit)
434); 435);
435 436
436/** 437/**