diff --git a/block/genhd.c b/block/genhd.c index c26733f6324b..bad731186189 100644 --- a/block/genhd.c +++ b/block/genhd.c @@ -819,9 +819,11 @@ void del_gendisk(struct gendisk *disk) disable_elv_switch(disk->queue); memflags = memalloc_noio_save(); + mutex_lock(&set->tag_list_lock); down_read(&set->update_nr_hwq_lock); __del_gendisk(disk); up_read(&set->update_nr_hwq_lock); + mutex_unlock(&set->tag_list_lock); memalloc_noio_restore(memflags); } }