dm table: fix upgrade mode race
authorAlasdair G Kergon <agk@redhat.com>
Thu, 2 Apr 2009 18:55:28 +0000 (19:55 +0100)
committerAlasdair G Kergon <agk@redhat.com>
Thu, 2 Apr 2009 18:55:28 +0000 (19:55 +0100)
commit570b9d968bf9b16974252ef7cbce73fa6dac34f3
tree1a356ada71b373b363f9fc2204769f8eee920f30
parentaea9058801c0acfa2831af1714da412dfb0018c2
dm table: fix upgrade mode race

upgrade_mode() sets bdev to NULL temporarily, and does not have any
locking to exclude anything from seeing that NULL.

In dm_table_any_congested() bdev_get_queue() can dereference that NULL and
cause a reported oops.

Fix this by not changing that field during the mode upgrade.

Cc: stable@kernel.org
Cc: Neil Brown <neilb@suse.de>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
drivers/md/dm-table.c