>>>>> "Damien" == Damien Le Moal <damien.lemoal@xxxxxxx> writes: Damien, Damien> The problem remains that the mpt3sas driver needs fixing. As you Damien> suggest, we can do that in sd, or directly in mpt3sas. I tried Damien> to do a clean fix in sd, but always end up consuming a lot of Damien> aspirin because of all the potential corner cases to deal Damien> with. What? You expected this to be easy? :) FWIW, I'm perfectly happy with the desire to shuffle the ZBC-specifics over to sd_zbc.c. Damien> The file sd.h has the inline function Damien> scsi_medium_access_command() defined. We could move that to Damien> include/scsi/scsi.h (or scsi_proto.h) and use it in place of Damien> blk_rq_accesses_medium() in the mpt3sas driver to not force Damien> unaligned resid corrections for zone commands. Would that be Damien> acceptable ? I'd still rather keep it in sd. If you don't have sufficient supplies of aspirin for the sd_completed_bytes() approach then I'm OK with a simple tweak to sd_done(). We need something we can reasonably Cc: to stable for 4.10. You are welcome to key off of scsi_medium_access_command() if you like but I don't think it's necessary. Just having a default for the req_op switch should suffice. I believe that was your original sd approach. If you post it again I'll have another look. And then I'll put the bigger completion rework back on my todo list. -- Martin K. Petersen Oracle Linux Engineering