MD RAID5: Avoid accessing gendisk or queue structs when not available
authorJonathan Brassow <jbrassow@redhat.com>
Thu, 7 Mar 2013 22:22:01 +0000 (16:22 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 28 Mar 2013 19:18:01 +0000 (12:18 -0700)
commita9e9cfa2ec38992da5db7c60c651e2e8dce7e393
tree1be85ad0e2cd1c4214ec595557ca6ab07b403550
parentbcfe2cfc58bc50d69854365871526e243cd83f19
MD RAID5: Avoid accessing gendisk or queue structs when not available

commit e3620a3ad52609f64a2402e4b59300afb4b83b77 upstream.

MD RAID5:  Fix kernel oops when RAID4/5/6 is used via device-mapper

Commit a9add5d (v3.8-rc1) added blktrace calls to the RAID4/5/6 driver.
However, when device-mapper is used to create RAID4/5/6 arrays, the
mddev->gendisk and mddev->queue fields are not setup.  Therefore, calling
things like trace_block_bio_remap will cause a kernel oops.  This patch
conditionalizes those calls on whether the proper fields exist to make
the calls.  (Device-mapper will call trace_block_bio_remap on its own.)

This patch is suitable for the 3.8.y stable kernel.

Signed-off-by: Jonathan Brassow <jbrassow@redhat.com>
Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/md/raid5.c