diff options
Diffstat (limited to 'drivers/md/raid1.c')
-rw-r--r-- | drivers/md/raid1.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index 3cbf0ac2aaad..8db311d7cddc 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c | |||
@@ -1055,6 +1055,9 @@ static int raid1_add_disk(mddev_t *mddev, mdk_rdev_t *rdev) | |||
1055 | if (mddev->recovery_disabled == conf->recovery_disabled) | 1055 | if (mddev->recovery_disabled == conf->recovery_disabled) |
1056 | return -EBUSY; | 1056 | return -EBUSY; |
1057 | 1057 | ||
1058 | if (rdev->badblocks.count) | ||
1059 | return -EINVAL; | ||
1060 | |||
1058 | if (rdev->raid_disk >= 0) | 1061 | if (rdev->raid_disk >= 0) |
1059 | first = last = rdev->raid_disk; | 1062 | first = last = rdev->raid_disk; |
1060 | 1063 | ||
@@ -1994,6 +1997,10 @@ static int run(mddev_t *mddev) | |||
1994 | blk_queue_segment_boundary(mddev->queue, | 1997 | blk_queue_segment_boundary(mddev->queue, |
1995 | PAGE_CACHE_SIZE - 1); | 1998 | PAGE_CACHE_SIZE - 1); |
1996 | } | 1999 | } |
2000 | if (rdev->badblocks.count) { | ||
2001 | printk(KERN_ERR "md/raid1: Cannot handle bad blocks yet\n"); | ||
2002 | return -EINVAL; | ||
2003 | } | ||
1997 | } | 2004 | } |
1998 | 2005 | ||
1999 | mddev->degraded = 0; | 2006 | mddev->degraded = 0; |