This bug report is getting no feedback, but I guess that this bug is in block or mm or locking layer rather than fs layer. NMI backtrace for this bug tends to report that sb_bread() from fill_super() from mount_bdev() is stalling is the cause of keep holding s_umount_key for more than 120 seconds. What is strange is that NMI backtrace for this bug tends to point at rcu_read_lock()/pagecache_get_page()/radix_tree_deref_slot()/ rcu_read_unlock() which is expected not to stall. Since CONFIG_RCU_CPU_STALL_TIMEOUT is set to 120 (and actually +5 due to CONFIG_PROVE_RCU=y) which is longer than CONFIG_DEFAULT_HUNG_TASK_TIMEOUT, maybe setting CONFIG_RCU_CPU_STALL_TIMEOUT to smaller values (e.g. 25) can give us some hints...