Bug#523359: openvz: fix oops in "cfq: revalidate cached async queue"
Package: linux-2.6
Version: 2.6.26-15
Severity: important
Tags: patch
commit 7e0f90d2f2d221e66d64e61ee3c4b3b83c2545de
Author: Konstantin Khlebnikov <khlebnikov@openvz.org>
Date: Fri Mar 27 15:01:41 2009 +0300
cfq: revalidate cached async queue
Async queues are stored on struct cfq_bc_data
and are cached on per-process struct cfq_io_context.
The cached queue may be invalid due to io_page beancounter
driven io-context switch.
So, cfq_io_context gets cached queue, but corresponding
cfq_bc and user_beancounter may be already destroyed -- all
this leads to oops at get_beancounter in cfq_set_request.
Add check for async queue owner and refill cache if it invalid.
The oops itself is like this:
-- System Information:
Debian Release: squeeze/sid
APT prefers testing
APT policy: (900, 'testing'), (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.29-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Reply to: