forked from luck/tmp_suning_uos_patched
[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
|
||||
When: January 2007
|
||||
Why: replaced by the e100 driver
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue
Block a user