diff options
author | Adrian Bunk <bunk@stusta.de> | 2006-10-03 04:15:44 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-03 11:04:16 -0400 |
commit | fbedac04fa11d7f9f9f425c7ec253f55becaae57 (patch) | |
tree | 700b49b6ea0da293d07a6a32cc154347e134686f /drivers/md/md.c | |
parent | 999d816851c3e080412a19558f111d01852d2f04 (diff) |
[PATCH] md: the scheduled removal of the START_ARRAY ioctl for md
This patch contains the scheduled removal of the START_ARRAY ioctl for md.
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/md/md.c')
-rw-r--r-- | drivers/md/md.c | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c index 8dbab2ef3885..3af6f1f06020 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c | |||
@@ -3440,67 +3440,6 @@ static void autorun_devices(int part) | |||
3440 | printk(KERN_INFO "md: ... autorun DONE.\n"); | 3440 | printk(KERN_INFO "md: ... autorun DONE.\n"); |
3441 | } | 3441 | } |
3442 | 3442 | ||
3443 | /* | ||
3444 | * import RAID devices based on one partition | ||
3445 | * if possible, the array gets run as well. | ||
3446 | */ | ||
3447 | |||
3448 | static int autostart_array(dev_t startdev) | ||
3449 | { | ||
3450 | char b[BDEVNAME_SIZE]; | ||
3451 | int err = -EINVAL, i; | ||
3452 | mdp_super_t *sb = NULL; | ||
3453 | mdk_rdev_t *start_rdev = NULL, *rdev; | ||
3454 | |||
3455 | start_rdev = md_import_device(startdev, 0, 0); | ||
3456 | if (IS_ERR(start_rdev)) | ||
3457 | return err; | ||
3458 | |||
3459 | |||
3460 | /* NOTE: this can only work for 0.90.0 superblocks */ | ||
3461 | sb = (mdp_super_t*)page_address(start_rdev->sb_page); | ||
3462 | if (sb->major_version != 0 || | ||
3463 | sb->minor_version != 90 ) { | ||
3464 | printk(KERN_WARNING "md: can only autostart 0.90.0 arrays\n"); | ||
3465 | export_rdev(start_rdev); | ||
3466 | return err; | ||
3467 | } | ||
3468 | |||
3469 | if (test_bit(Faulty, &start_rdev->flags)) { | ||
3470 | printk(KERN_WARNING | ||
3471 | "md: can not autostart based on faulty %s!\n", | ||
3472 | bdevname(start_rdev->bdev,b)); | ||
3473 | export_rdev(start_rdev); | ||
3474 | return err; | ||
3475 | } | ||
3476 | list_add(&start_rdev->same_set, &pending_raid_disks); | ||
3477 | |||
3478 | for (i = 0; i < MD_SB_DISKS; i++) { | ||
3479 | mdp_disk_t *desc = sb->disks + i; | ||
3480 | dev_t dev = MKDEV(desc->major, desc->minor); | ||
3481 | |||
3482 | if (!dev) | ||
3483 | continue; | ||
3484 | if (dev == startdev) | ||
3485 | continue; | ||
3486 | if (MAJOR(dev) != desc->major || MINOR(dev) != desc->minor) | ||
3487 | continue; | ||
3488 | rdev = md_import_device(dev, 0, 0); | ||
3489 | if (IS_ERR(rdev)) | ||
3490 | continue; | ||
3491 | |||
3492 | list_add(&rdev->same_set, &pending_raid_disks); | ||
3493 | } | ||
3494 | |||
3495 | /* | ||
3496 | * possibly return codes | ||
3497 | */ | ||
3498 | autorun_devices(0); | ||
3499 | return 0; | ||
3500 | |||
3501 | } | ||
3502 | |||
3503 | |||
3504 | static int get_version(void __user * arg) | 3443 | static int get_version(void __user * arg) |
3505 | { | 3444 | { |
3506 | mdu_version_t ver; | 3445 | mdu_version_t ver; |
@@ -4259,27 +4198,6 @@ static int md_ioctl(struct inode *inode, struct file *file, | |||
4259 | goto abort; | 4198 | goto abort; |
4260 | } | 4199 | } |
4261 | 4200 | ||
4262 | |||
4263 | if (cmd == START_ARRAY) { | ||
4264 | /* START_ARRAY doesn't need to lock the array as autostart_array | ||
4265 | * does the locking, and it could even be a different array | ||
4266 | */ | ||
4267 | static int cnt = 3; | ||
4268 | if (cnt > 0 ) { | ||
4269 | printk(KERN_WARNING | ||
4270 | "md: %s(pid %d) used deprecated START_ARRAY ioctl. " | ||
4271 | "This will not be supported beyond July 2006\n", | ||
4272 | current->comm, current->pid); | ||
4273 | cnt--; | ||
4274 | } | ||
4275 | err = autostart_array(new_decode_dev(arg)); | ||
4276 | if (err) { | ||
4277 | printk(KERN_WARNING "md: autostart failed!\n"); | ||
4278 | goto abort; | ||
4279 | } | ||
4280 | goto done; | ||
4281 | } | ||
4282 | |||
4283 | err = mddev_lock(mddev); | 4201 | err = mddev_lock(mddev); |
4284 | if (err) { | 4202 | if (err) { |
4285 | printk(KERN_INFO | 4203 | printk(KERN_INFO |