aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/blkdev.h13
-rw-r--r--kernel/sched.c2
2 files changed, 14 insertions, 1 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/kernel/sched.c b/kernel/sched.c
index a187c3fe027b..312f8b95c2d4 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -4118,7 +4118,7 @@ need_resched:
4118 */ 4118 */
4119 if (blk_needs_flush_plug(prev)) { 4119 if (blk_needs_flush_plug(prev)) {
4120 raw_spin_unlock(&rq->lock); 4120 raw_spin_unlock(&rq->lock);
4121 blk_flush_plug(prev); 4121 blk_schedule_flush_plug(prev);
4122 raw_spin_lock(&rq->lock); 4122 raw_spin_lock(&rq->lock);
4123 } 4123 }
4124 } 4124 }