dm table: set flush capability based on underlying devices
authorMike Snitzer <snitzer@redhat.com>
Tue, 2 Aug 2011 11:32:08 +0000 (12:32 +0100)
committerAlasdair G Kergon <agk@redhat.com>
Tue, 2 Aug 2011 11:32:08 +0000 (12:32 +0100)
commited8b752bccf2560e305e25125721d2f0ac759e88
treeb909fcf21ca7cdda3e7a680b37162212cce99586
parent772ae5f54d69c38a5e3c4352c5fdbdaff141af21
dm table: set flush capability based on underlying devices

DM has always advertised both REQ_FLUSH and REQ_FUA flush capabilities
regardless of whether or not a given DM device's underlying devices
also advertised a need for them.

Block's flush-merge changes from 2.6.39 have proven to be more costly
for DM devices.  Performance regressions have been reported even when
DM's underlying devices do not advertise that they have a write cache.

Fix the performance regressions by configuring a DM device's flushing
capabilities based on those of the underlying devices' capabilities.

Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
drivers/md/dm-table.c
drivers/md/dm.c