]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
md: release allocated bitset sync_set
authorZdenek Kabelac <zkabelac@redhat.com>
Wed, 8 Nov 2017 12:44:55 +0000 (13:44 +0100)
committerShaohua Li <shli@fb.com>
Fri, 10 Nov 2017 19:43:04 +0000 (11:43 -0800)
Patch fixes kmemleak on md_stop() path used likely only by dm-raid wrapper.
Code of md is using  mddev_put() where both bitsets are released however this
freeing is not shared.

Also set NULL to bio_set and sync_set pointers just like mddev_put is
doing.

Signed-off-by: Zdenek Kabelac <zkabelac@redhat.com>
Signed-off-by: Shaohua Li <shli@fb.com>
drivers/md/md.c

index 15e4668f594cf64843dd2f4ce5cf946f97d1459f..e014d39159d7a6e3cce9f99cf9b61d15865d15df 100644 (file)
@@ -5852,8 +5852,14 @@ void md_stop(struct mddev *mddev)
         * This is called from dm-raid
         */
        __md_stop(mddev);
-       if (mddev->bio_set)
+       if (mddev->bio_set) {
                bioset_free(mddev->bio_set);
+               mddev->bio_set = NULL;
+       }
+       if (mddev->sync_set) {
+               bioset_free(mddev->sync_set);
+               mddev->sync_set = NULL;
+       }
 }
 
 EXPORT_SYMBOL_GPL(md_stop);