md: remove suspicious size_of()
authorNeilBrown <neilb@suse.de>
Wed, 27 Jul 2011 21:56:24 +0000 (07:56 +1000)
committerNeilBrown <neilb@suse.de>
Wed, 27 Jul 2011 21:56:24 +0000 (07:56 +1000)
When calling bioset_create we pass the size of the front_pad as
   sizeof(mddev)
which looks suspicious as mddev is a pointer and so it looks like a
common mistake where
   sizeof(*mddev)
was intended.
The size is actually correct as we want to store a pointer in the
front padding of the bios created by the bioset, so make the intent
more explicit by using
   sizeof(mddev_t *)

Reported-by: Zdenek Kabelac <zdenek.kabelac@gmail.com>
Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/md.c

index 7caa096..4279b3b 100644 (file)
@@ -4497,7 +4497,8 @@ int md_run(mddev_t *mddev)
        }
 
        if (mddev->bio_set == NULL)
-               mddev->bio_set = bioset_create(BIO_POOL_SIZE, sizeof(mddev));
+               mddev->bio_set = bioset_create(BIO_POOL_SIZE,
+                                              sizeof(mddev_t *));
 
        spin_lock(&pers_lock);
        pers = find_pers(mddev->level, mddev->clevel);