GFP_NOFS is never the right thing for block layer allocations. The right thing here is GFP_NOIO which is a superset of GFP_NOFS. Otherwise you could reproduce the same deadlock when using swap instead of a file system to reproduce basically the same deadlock. Note that this: https://lore.kernel.org/linux-block/20250117074442.256705-3-hch@xxxxxx/T/#u should probably fix the actual deadlock, but it might still need annotations for lockdep to deal with the initial probing where the queue is not frozen. Compared to hacky annotations just using GFP_NOIO feels simpler and more obvious.