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)
committerNeilBrown <neilb@suse.de>
Wed, 20 Mar 2013 02:16:57 +0000 (13:16 +1100)
commite3620a3ad52609f64a2402e4b59300afb4b83b77
treec707eed6157a41e7f913c40eb1db1341473dfca7
parentce7d363aaf1e28be8406a2976220944ca487e8ca
MD RAID5: Avoid accessing gendisk or queue structs when not available

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.

Cc: stable@vger.kernel.org (v3.8+)
Signed-off-by: Jonathan Brassow <jbrassow@redhat.com>
Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/raid5.c