summaryrefslogtreecommitdiffstats
path: root/lib/iomap.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2011-06-22 19:47:01 +0200
committerIngo Molnar <mingo@elte.hu>2011-08-29 12:26:59 +0200
commit9c40cef2b799f9b5e7fa5de4d2ad3a0168ba118c (patch)
treecb7a48eb2a6d30b90144a55bc6bb82caacfc9622 /lib/iomap.c
parentc259e01a1ec90063042f758e409cd26b2a0963c8 (diff)
downloadop-kernel-dev-9c40cef2b799f9b5e7fa5de4d2ad3a0168ba118c.zip
op-kernel-dev-9c40cef2b799f9b5e7fa5de4d2ad3a0168ba118c.tar.gz
sched: Move blk_schedule_flush_plug() out of __schedule()
There is no real reason to run blk_schedule_flush_plug() with interrupts and preemption disabled. Move it into schedule() and call it when the task is going voluntarily to sleep. There might be false positives when the task is woken between that call and actually scheduling, but that's not really different from being woken immediately after switching away. This fixes a deadlock in the scheduler where the blk_schedule_flush_plug() callchain enables interrupts and thereby allows a wakeup to happen of the task that's going to sleep. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Tejun Heo <tj@kernel.org> Cc: Jens Axboe <axboe@kernel.dk> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: stable@kernel.org # 2.6.39+ Link: http://lkml.kernel.org/n/tip-dwfxtra7yg1b5r65m32ywtct@git.kernel.org Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'lib/iomap.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud