dm io: fix discard support
authorMilan Broz <mbroz@redhat.com>
Wed, 7 Mar 2012 19:09:37 +0000 (19:09 +0000)
committerAlasdair G Kergon <agk@redhat.com>
Wed, 7 Mar 2012 19:09:37 +0000 (19:09 +0000)
commit0c535e0d6f463365c29623350dbd91642363c39b
tree33217f386886b01e5a033ac8c0cf5fb46f5c3464
parent902c6a96a7cb9c50d2a8aed1788efad0a5d8f04c
dm io: fix discard support

This patch fixes a crash by recognising discards in dm_io.

Currently dm_mirror can send REQ_DISCARD bios if running over a
discard-enabled device and without support in dm_io the system
crashes badly.

BUG: unable to handle kernel paging request at 00800000
IP:  __bio_add_page.part.17+0xf5/0x1e0
...
 bio_add_page+0x56/0x70
 dispatch_io+0x1cf/0x240 [dm_mod]
 ? km_get_page+0x50/0x50 [dm_mod]
 ? vm_next_page+0x20/0x20 [dm_mod]
 ? mirror_flush+0x130/0x130 [dm_mirror]
 dm_io+0xdc/0x2b0 [dm_mod]
...

Introduced in 2.6.38-rc1 by commit 5fc2ffeabb9ee0fc0e71ff16b49f34f0ed3d05b4
(dm raid1: support discard).

Signed-off-by: Milan Broz <mbroz@redhat.com>
Cc: stable@kernel.org
Acked-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
drivers/md/dm-io.c