On Mon, Jun 28, 2010 at 02:41:30PM +0200, Jens Axboe wrote: > The horrible part is working around that issue by fiddling with the > assignment of the internal vec. THAT looks like a horrible solution > to that problem. > > How about just adding a check to bio_has_data() for non-zero > bio->bi_vcnt? The question is how a discard request from the block layer should look like. With Mike's patch we have the same situation as for a barrier request: absolutely no data transferred and no indicator of it. IHMO that's much better than any partially constructed request. And yes, that means enabling the payload later in the driver. The other option would be to not reuse the request at all and just allocate a new request and use that from sd_prep_fn. That's what I tried to implement first, but I couldn't get it to work. Given all the issue we have with the current approach I'm almost tempted to try that again. -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel