Re: block: properly handle flush/fua requests inblk_insert_cloned_request
From: Tejun Heo
Date: Tue Aug 09 2011 - 13:51:18 EST
On Tue, Aug 09, 2011 at 01:43:47PM -0400, Mike Snitzer wrote:
> [cc'ing dm-devel]
> All of these issues have come to light because DM was not setting
> flush_flags based on the underlying device(s). Now fixed in v3.1-rc1:
> ed8b752 dm table: set flush capability based on underlying devices
> Given that commit, and that request-based DM is beneath the elevator, it
> seems any additional effort to have DM flushes re-enter the flush
> machinary is unnecessary.
Hmmm... what if the underlying devices have different featureset? Use
the lowest common denominator? The flush mechanism is designed to
deal with stacking by going through flush at each level. Stacking
queue can simply export support for both REQ_FLUSH and FUA and the
lower lever queue will decompose them according to the capability
supported by the actual device.
IIUC, what's broken here is some insert functions aren't using
ELEVATOR_INSERT_FLUSH when needed and there are some issues due to the
special nature of the stacked requests which I think should be fixed.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/