Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 131010
b: refs/heads/master
c: de01dfa
h: refs/heads/master
v: v3
  • Loading branch information
NeilBrown committed Feb 6, 2009
1 parent 88cdee7 commit 7a1a4c5
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 11 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 852c8bf484a0e17ee27f413ef26e87f522af5607
refs/heads/master: de01dfadf25bf83cfe3d85c163005c4320532658
24 changes: 14 additions & 10 deletions trunk/drivers/md/md.c
Original file line number Diff line number Diff line change
Expand Up @@ -1481,6 +1481,11 @@ static int bind_rdev_to_array(mdk_rdev_t * rdev, mddev_t * mddev)
if (find_rdev_nr(mddev, rdev->desc_nr))
return -EBUSY;
}
if (mddev->max_disks && rdev->desc_nr >= mddev->max_disks) {
printk(KERN_WARNING "md: %s: array is limited to %d devices\n",
mdname(mddev), mddev->max_disks);
return -EBUSY;
}
bdevname(rdev->bdev,b);
while ( (s=strchr(b, '/')) != NULL)
*s = '!';
Expand Down Expand Up @@ -2441,6 +2446,15 @@ static void analyze_sbs(mddev_t * mddev)

i = 0;
rdev_for_each(rdev, tmp, mddev) {
if (rdev->desc_nr >= mddev->max_disks ||
i > mddev->max_disks) {
printk(KERN_WARNING
"md: %s: %s: only %d devices permitted\n",
mdname(mddev), bdevname(rdev->bdev, b),
mddev->max_disks);
kick_rdev_from_array(rdev);
continue;
}
if (rdev != freshest)
if (super_types[mddev->major_version].
validate_super(mddev, rdev)) {
Expand Down Expand Up @@ -4614,13 +4628,6 @@ static int hot_add_disk(mddev_t * mddev, dev_t dev)
* noticed in interrupt contexts ...
*/

if (rdev->desc_nr == mddev->max_disks) {
printk(KERN_WARNING "%s: can not hot-add to full array!\n",
mdname(mddev));
err = -EBUSY;
goto abort_unbind_export;
}

rdev->raid_disk = -1;

md_update_sb(mddev, 1);
Expand All @@ -4634,9 +4641,6 @@ static int hot_add_disk(mddev_t * mddev, dev_t dev)
md_new_event(mddev);
return 0;

abort_unbind_export:
unbind_rdev_from_array(rdev);

abort_export:
export_rdev(rdev);
return err;
Expand Down

0 comments on commit 7a1a4c5

Please sign in to comment.