On Wed, Dec 13, 2023 at 09:41:23AM +0100, Christoph Hellwig wrote: > On Tue, Dec 12, 2023 at 08:00:16PM -0800, Eric Biggers wrote: > > From: Christoph Hellwig <hch@xxxxxx> > > > > blkdev_put must not be called under sb->s_umount to avoid a lock order > > reversal with disk->open_mutex once call backs from block devices to > > the file system using the holder ops are supported. Move the call > > to btrfs_close_devices into btrfs_free_fs_info so that it is closed > > from ->kill_sb (which is also called from the mount failure handling > > path unlike ->put_super) as well as when an fs_info is freed because > > an existing superblock already exists. > > Thanks, this looks roughly the same to what I have locally. > > I did in fact forward port everything missing from the get_super > series yesterday, but on my test setup btrfs/142 hangs even in the > baseline setup. I went back to Linux before giving up for now. > > Josef, any chane you could throw this branch: > > git://git.infradead.org/users/hch/misc.git btrfs-holder > > into your CI setup and see if it sticks? Except for the trivial last > three patches this is basically what you reviewed already, although > there was some heavy rebasing due to the mount API converison. I ran it through, you broke a test that isn't upstream yet to test the old mount api double mount thing that I have a test for https://github.com/btrfs/fstests/commit/2796723e77adb0f9da1059acf13fc402467f7ac4 In this case we end up leaking a reference on the fs_devices. If you add this fixup to "btrfs: call btrfs_close_devices from ->kill_sb" it fixes that failure. I'm re-running with that fixup applied, but I assume the rest is fine. Thanks, Josef