On Sat, May 19, 2018 at 06:32:11AM +0800, Ming Lei wrote: > This way can't sync timeout reliably, since timeout events can > come from two NS at the same time, and one may be handled as > RESET_TIMER, and another one can be handled as EH_HANDLED. You keep saying that, but the controller state is global to the controller. It doesn't matter which namespace request_queue started the reset: every namespaces request queue sees the RESETTING controller state from the point the syncing occurs, and they don't return RESET_TIMER, and on top of that, the reset reclaims every single IO command no matter what namespace request_queue initiated the reset.