]> Pileus Git - ~andy/linux/blobdiff - drivers/md/raid1.c
Merge tag 'fcoe' into for-linus
[~andy/linux] / drivers / md / raid1.c
index 6e17f8181c4b923eb4044838d5bfc9dbb6d625fd..ec734588a1c62c546800de9919e3ec63202c9cf8 100644 (file)
@@ -1519,8 +1519,9 @@ static int raid1_add_disk(struct mddev *mddev, struct md_rdev *rdev)
                p = conf->mirrors+mirror;
                if (!p->rdev) {
 
-                       disk_stack_limits(mddev->gendisk, rdev->bdev,
-                                         rdev->data_offset << 9);
+                       if (mddev->gendisk)
+                               disk_stack_limits(mddev->gendisk, rdev->bdev,
+                                                 rdev->data_offset << 9);
 
                        p->head_position = 0;
                        rdev->raid_disk = mirror;
@@ -1559,7 +1560,7 @@ static int raid1_add_disk(struct mddev *mddev, struct md_rdev *rdev)
                clear_bit(Unmerged, &rdev->flags);
        }
        md_integrity_add_rdev(rdev, mddev);
-       if (blk_queue_discard(bdev_get_queue(rdev->bdev)))
+       if (mddev->queue && blk_queue_discard(bdev_get_queue(rdev->bdev)))
                queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, mddev->queue);
        print_conf(conf);
        return err;