On Thu, Jun 06, 2024 at 10:30:06PM +0800, Ming Lei wrote: > Yeah, that is one area queue freezing can't cover logical block size > change, but I'd suggest to put the logical bs check into submit_bio() or > slow path of __bio_queue_enter() at least. We really need an alignment check in submit_bio anyway, so doing it under the freeze protection would also help with this. > My concern is that nvme format is started without draining IO, and > IO can be submitted to hardware when nvme FW is handling formatting. > I am not sure if nvme FW can deal with this situation correctly. > Ewan suggested to run 'nvme format' with exclusive nvme disk open, which > needs nvme-cli change. .. and doesn't protect against someone using a different tool anyway. That beeing said, nvme_passthru_start actually freezes all queues based on the commands supported an affects log, and nvme_init_known_nvm_effects should force this even for controllers not supporting the log or reporting bogus information. So in general the queue should be frozen during the actual format.