On Wed, Jul 30, 2025 at 05:45:27PM +0530, Kanchan Joshi wrote: > On 7/29/2025 8:04 PM, Keith Busch wrote: > > @@ -151,6 +146,11 @@ bool blk_rq_dma_map_iter_start(struct request *req, struct device *dma_dev, > > memset(&iter->p2pdma, 0, sizeof(iter->p2pdma)); > > iter->status = BLK_STS_OK; > > > > + if (req->rq_flags & RQF_SPECIAL_PAYLOAD) > > + iter->iter.bvec = &req->special_vec; > > I am not certain yet, but thinking whether this is enough to handle > RQF_SPECIAL_PAYLOAD correctly. > Maybe "req->special_vec.bv_len" also need to be included here to > initialize the iter. Yeah, I think you're right. I had only tested 'discard' for the special payload, and it appeared to be okay, but I suspect for the wrong reasons. I'll fix it up.