Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[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>

authored by

Adrian Bunk and committed by
Linus Torvalds
fbedac04 999d8168

+1 -93
-9
Documentation/feature-removal-schedule.txt
··· 122 122 123 123 --------------------------- 124 124 125 - What: START_ARRAY ioctl for md 126 - When: July 2006 127 - Files: drivers/md/md.c 128 - Why: Not reliable by design - can fail when most needed. 129 - Alternatives exist 130 - Who: NeilBrown <neilb@suse.de> 131 - 132 - --------------------------- 133 - 134 125 What: eepro100 network driver 135 126 When: January 2007 136 127 Why: replaced by the e100 driver
-82
drivers/md/md.c
··· 3440 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 3443 static int get_version(void __user * arg) 3505 3444 { 3506 3445 mdu_version_t ver; ··· 4196 4257 if (!mddev) { 4197 4258 BUG(); 4198 4259 goto abort; 4199 - } 4200 - 4201 - 4202 - if (cmd == START_ARRAY) { 4203 - /* START_ARRAY doesn't need to lock the array as autostart_array 4204 - * does the locking, and it could even be a different array 4205 - */ 4206 - static int cnt = 3; 4207 - if (cnt > 0 ) { 4208 - printk(KERN_WARNING 4209 - "md: %s(pid %d) used deprecated START_ARRAY ioctl. " 4210 - "This will not be supported beyond July 2006\n", 4211 - current->comm, current->pid); 4212 - cnt--; 4213 - } 4214 - err = autostart_array(new_decode_dev(arg)); 4215 - if (err) { 4216 - printk(KERN_WARNING "md: autostart failed!\n"); 4217 - goto abort; 4218 - } 4219 - goto done; 4220 4260 } 4221 4261 4222 4262 err = mddev_lock(mddev);
-1
include/linux/compat_ioctl.h
··· 122 122 ULONG_IOCTL(HOT_ADD_DISK) 123 123 ULONG_IOCTL(SET_DISK_FAULTY) 124 124 COMPATIBLE_IOCTL(RUN_ARRAY) 125 - ULONG_IOCTL(START_ARRAY) 126 125 COMPATIBLE_IOCTL(STOP_ARRAY) 127 126 COMPATIBLE_IOCTL(STOP_ARRAY_RO) 128 127 COMPATIBLE_IOCTL(RESTART_ARRAY_RW)
+1 -1
include/linux/raid/md_u.h
··· 41 41 42 42 /* usage */ 43 43 #define RUN_ARRAY _IOW (MD_MAJOR, 0x30, mdu_param_t) 44 - #define START_ARRAY _IO (MD_MAJOR, 0x31) 44 + /* 0x31 was START_ARRAY */ 45 45 #define STOP_ARRAY _IO (MD_MAJOR, 0x32) 46 46 #define STOP_ARRAY_RO _IO (MD_MAJOR, 0x33) 47 47 #define RESTART_ARRAY_RW _IO (MD_MAJOR, 0x34)