1
0
Fork 0

[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>
hifive-unleashed-5.1
Adrian Bunk 2006-10-03 01:15:44 -07:00 committed by Linus Torvalds
parent 999d816851
commit fbedac04fa
4 changed files with 1 additions and 93 deletions

View File

@ -122,15 +122,6 @@ Who: Arjan van de Ven
---------------------------
What: START_ARRAY ioctl for md
When: July 2006
Files: drivers/md/md.c
Why: Not reliable by design - can fail when most needed.
Alternatives exist
Who: NeilBrown <neilb@suse.de>
---------------------------
What: eepro100 network driver
When: January 2007
Why: replaced by the e100 driver

View File

@ -3440,67 +3440,6 @@ static void autorun_devices(int part)
printk(KERN_INFO "md: ... autorun DONE.\n");
}
/*
* import RAID devices based on one partition
* if possible, the array gets run as well.
*/
static int autostart_array(dev_t startdev)
{
char b[BDEVNAME_SIZE];
int err = -EINVAL, i;
mdp_super_t *sb = NULL;
mdk_rdev_t *start_rdev = NULL, *rdev;
start_rdev = md_import_device(startdev, 0, 0);
if (IS_ERR(start_rdev))
return err;
/* NOTE: this can only work for 0.90.0 superblocks */
sb = (mdp_super_t*)page_address(start_rdev->sb_page);
if (sb->major_version != 0 ||
sb->minor_version != 90 ) {
printk(KERN_WARNING "md: can only autostart 0.90.0 arrays\n");
export_rdev(start_rdev);
return err;
}
if (test_bit(Faulty, &start_rdev->flags)) {
printk(KERN_WARNING
"md: can not autostart based on faulty %s!\n",
bdevname(start_rdev->bdev,b));
export_rdev(start_rdev);
return err;
}
list_add(&start_rdev->same_set, &pending_raid_disks);
for (i = 0; i < MD_SB_DISKS; i++) {
mdp_disk_t *desc = sb->disks + i;
dev_t dev = MKDEV(desc->major, desc->minor);
if (!dev)
continue;
if (dev == startdev)
continue;
if (MAJOR(dev) != desc->major || MINOR(dev) != desc->minor)
continue;
rdev = md_import_device(dev, 0, 0);
if (IS_ERR(rdev))
continue;
list_add(&rdev->same_set, &pending_raid_disks);
}
/*
* possibly return codes
*/
autorun_devices(0);
return 0;
}
static int get_version(void __user * arg)
{
mdu_version_t ver;
@ -4259,27 +4198,6 @@ static int md_ioctl(struct inode *inode, struct file *file,
goto abort;
}
if (cmd == START_ARRAY) {
/* START_ARRAY doesn't need to lock the array as autostart_array
* does the locking, and it could even be a different array
*/
static int cnt = 3;
if (cnt > 0 ) {
printk(KERN_WARNING
"md: %s(pid %d) used deprecated START_ARRAY ioctl. "
"This will not be supported beyond July 2006\n",
current->comm, current->pid);
cnt--;
}
err = autostart_array(new_decode_dev(arg));
if (err) {
printk(KERN_WARNING "md: autostart failed!\n");
goto abort;
}
goto done;
}
err = mddev_lock(mddev);
if (err) {
printk(KERN_INFO

View File

@ -122,7 +122,6 @@ COMPATIBLE_IOCTL(PROTECT_ARRAY)
ULONG_IOCTL(HOT_ADD_DISK)
ULONG_IOCTL(SET_DISK_FAULTY)
COMPATIBLE_IOCTL(RUN_ARRAY)
ULONG_IOCTL(START_ARRAY)
COMPATIBLE_IOCTL(STOP_ARRAY)
COMPATIBLE_IOCTL(STOP_ARRAY_RO)
COMPATIBLE_IOCTL(RESTART_ARRAY_RW)

View File

@ -41,7 +41,7 @@
/* usage */
#define RUN_ARRAY _IOW (MD_MAJOR, 0x30, mdu_param_t)
#define START_ARRAY _IO (MD_MAJOR, 0x31)
/* 0x31 was START_ARRAY */
#define STOP_ARRAY _IO (MD_MAJOR, 0x32)
#define STOP_ARRAY_RO _IO (MD_MAJOR, 0x33)
#define RESTART_ARRAY_RW _IO (MD_MAJOR, 0x34)