On Tue, 10 Sept 2024 at 10:53, Jesper Dangaard Brouer <hawk@xxxxxxxxxx> wrote: > > af2814149883e2c1851866ea2afcd8eadc040f79 is the first bad commit Just for fun - can you test moving the queue freezing *inside* the mutex, ie something like --- a/block/blk-sysfs.c +++ b/block/blk-sysfs.c @@ -670,11 +670,11 @@ queue_attr_store(struct kobject *kobj, struct attribute *attr, if (!entry->store) return -EIO; - blk_mq_freeze_queue(q); mutex_lock(&q->sysfs_lock); + blk_mq_freeze_queue(q); res = entry->store(disk, page, length); - mutex_unlock(&q->sysfs_lock); blk_mq_unfreeze_queue(q); + mutex_unlock(&q->sysfs_lock); return res; } (Just do it by hand, my patch is whitespace-damaged on purpose - untested and not well thought through). Because I'm wondering whether maybe some IO is done under the sysfs_lock, and then you might have a deadlock? Linus