On Fri, 2017-03-24 at 20:36 +0800, Ming Lei wrote: > + /* block new I/O coming */ > + blk_freeze_queue_start(q); As I have already mentioned two times, the comment above blk_freeze_queue_start() should be made more clear. It should mention that without that call blk_queue_enter() won't check the "dying" flag after it has been set. If that is not mentioned in a comment the next person who reads the blk_set_queue_dying() function will wonder why the blk_freeze_queue_start() call is really needed and whether it can be removed. > /* > * read pair of barrier in blk_freeze_queue_start(), > * we need to order reading DEAD flag of .q_usage_counter > - * and reading .mq_freeze_depth, otherwise the following > - * wait may never return if the two read are reordered. > + * and reading .mq_freeze_depth or dying flag, otherwise > + * the following wait may never return if the two read > + * are reordered. > */ > smp_rmb(); Please fix the spelling in the above comment ("two read"). Thanks, Bart.