>> I don't know why we think your earlier fix which cut dependency between >> ->elevator_lock and ->freeze_lock doesn't work. But anyways, my view >> is that we've got into these lock chains from two different code paths: > > As I explained, blk_mq_enter_no_io() is same with freeze queue, just the > lock in __bio_queue_enter() isn't modeled. If it is done, every lockdep > warning will be re-triggered too. > Oh I see, because I tested your earlier patches without lock modeled I didn't encounter any lockdep warning. >> >> path1: elevator_lock >> -> fs_reclaim (GFP_KERNEL) >> -> freeze_lock >> >> path2: freeze_lock(memalloc_noio) >> -> elevator_lock >> -> fs_reclaim (this becomes NOP in this case due to memalloc_noio) > > No, there isn't fs_reclaim in path2, and memalloc_noio() will avoid it. > Yes correct and so I mentioned above NOP for fs_reclaim in path2. Thanks, --Nilay