btrfs: fix leak of fs devices after removing btrfs module
authorFilipe Manana <fdmanana@suse.com>
Tue, 13 Dec 2022 10:42:26 +0000 (10:42 +0000)
committerDavid Sterba <dsterba@suse.com>
Thu, 15 Dec 2022 18:16:54 +0000 (19:16 +0100)
When removing the btrfs module we are not calling btrfs_cleanup_fs_uuids()
which results in leaking btrfs_fs_devices structures and other resources.
This is a regression recently introduced by a refactoring of the module
initialization and exit sequence, which simply removed the call to
btrfs_cleanup_fs_uuids() in the exit path, resulting in the leaks.

So fix this by calling btrfs_cleanup_fs_uuids() at exit_btrfs_fs().

Fixes: 5565b8e0adcd ("btrfs: make module init/exit match their sequence")
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/super.c

index 93f52ee..d5de18d 100644 (file)
@@ -2514,6 +2514,7 @@ static __always_inline void btrfs_exit_btrfs_fs(void)
 static void __exit exit_btrfs_fs(void)
 {
        btrfs_exit_btrfs_fs();
+       btrfs_cleanup_fs_uuids();
 }
 
 static int __init init_btrfs_fs(void)