Shouldn't the device-mapper io_restrictions structure include a field to indicate whether or not I/O may be clustered as indicated by the setting of the QUEUE_CLUSTER_FLAG bit of the queue_flags field of the request_queue structures for the target devices? Otherwise, couldn't we end up with some I/Os terminated in the I/O prep phase due to an excess of physical segments in the I/O request?