diff options
| -rw-r--r-- | include/linux/blkdev.h | 13 | ||||
| -rw-r--r-- | kernel/sched.c | 2 |
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 | |||
| 878 | static 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 | ||
| 1328 | static inline void blk_schedule_flush_plug(struct task_struct *task) | ||
| 1329 | { | ||
| 1330 | } | ||
| 1331 | |||
| 1332 | |||
| 1320 | static inline bool blk_needs_flush_plug(struct task_struct *tsk) | 1333 | static 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 | } |
