On Wed, Nov 02, 2022 at 09:17:54AM -0600, Jens Axboe wrote: > > This looks fine, but if we're never expecting this to happen, I do think > it should just go into libata instead as that's the only user that > cares about it. Yes, that'll lose the backtrace for who submitted it > potentially, but you can debug it pretty easily at that point if you > run into it. FUA and PREFLUSH are bits only defined for writes. libata might be the first thing blowing up, but it really is a block layer constraint. So validity checking what is being sent to the block layer at the highest possible lyer is a good thing to ensure we don't get us in trouble by someone accidentally sending one down or even expecting it to work. Especially as at least SCSI actually defines semantics for FUA on reads, but they are completely bogus and useless.