[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>
This commit is contained in:
parent
999d816851
commit
fbedac04fa
|
@ -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
|
What: eepro100 network driver
|
||||||
When: January 2007
|
When: January 2007
|
||||||
Why: replaced by the e100 driver
|
Why: replaced by the e100 driver
|
||||||
|
|
|
@ -3440,67 +3440,6 @@ static void autorun_devices(int part)
|
||||||
printk(KERN_INFO "md: ... autorun DONE.\n");
|
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)
|
static int get_version(void __user * arg)
|
||||||
{
|
{
|
||||||
mdu_version_t ver;
|
mdu_version_t ver;
|
||||||
|
@ -4259,27 +4198,6 @@ static int md_ioctl(struct inode *inode, struct file *file,
|
||||||
goto abort;
|
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);
|
err = mddev_lock(mddev);
|
||||||
if (err) {
|
if (err) {
|
||||||
printk(KERN_INFO
|
printk(KERN_INFO
|
||||||
|
|
|
@ -122,7 +122,6 @@ COMPATIBLE_IOCTL(PROTECT_ARRAY)
|
||||||
ULONG_IOCTL(HOT_ADD_DISK)
|
ULONG_IOCTL(HOT_ADD_DISK)
|
||||||
ULONG_IOCTL(SET_DISK_FAULTY)
|
ULONG_IOCTL(SET_DISK_FAULTY)
|
||||||
COMPATIBLE_IOCTL(RUN_ARRAY)
|
COMPATIBLE_IOCTL(RUN_ARRAY)
|
||||||
ULONG_IOCTL(START_ARRAY)
|
|
||||||
COMPATIBLE_IOCTL(STOP_ARRAY)
|
COMPATIBLE_IOCTL(STOP_ARRAY)
|
||||||
COMPATIBLE_IOCTL(STOP_ARRAY_RO)
|
COMPATIBLE_IOCTL(STOP_ARRAY_RO)
|
||||||
COMPATIBLE_IOCTL(RESTART_ARRAY_RW)
|
COMPATIBLE_IOCTL(RESTART_ARRAY_RW)
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
|
|
||||||
/* usage */
|
/* usage */
|
||||||
#define RUN_ARRAY _IOW (MD_MAJOR, 0x30, mdu_param_t)
|
#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 _IO (MD_MAJOR, 0x32)
|
||||||
#define STOP_ARRAY_RO _IO (MD_MAJOR, 0x33)
|
#define STOP_ARRAY_RO _IO (MD_MAJOR, 0x33)
|
||||||
#define RESTART_ARRAY_RW _IO (MD_MAJOR, 0x34)
|
#define RESTART_ARRAY_RW _IO (MD_MAJOR, 0x34)
|
||||||
|
|
Loading…
Reference in New Issue