mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 21:38:32 +08:00
osd: Convert to new IDA API
Slightly simpler code. Signed-off-by: Matthew Wilcox <willy@infradead.org>
This commit is contained in:
parent
9401508012
commit
5963e78d0c
@ -423,19 +423,11 @@ static int osd_probe(struct device *dev)
|
||||
if (scsi_device->type != TYPE_OSD)
|
||||
return -ENODEV;
|
||||
|
||||
do {
|
||||
if (!ida_pre_get(&osd_minor_ida, GFP_KERNEL))
|
||||
return -ENODEV;
|
||||
|
||||
error = ida_get_new(&osd_minor_ida, &minor);
|
||||
} while (error == -EAGAIN);
|
||||
|
||||
if (error)
|
||||
return error;
|
||||
if (minor >= SCSI_OSD_MAX_MINOR) {
|
||||
error = -EBUSY;
|
||||
goto err_retract_minor;
|
||||
}
|
||||
minor = ida_alloc_max(&osd_minor_ida, SCSI_OSD_MAX_MINOR, GFP_KERNEL);
|
||||
if (minor == -ENOSPC)
|
||||
return -EBUSY;
|
||||
if (minor < 0)
|
||||
return -ENODEV;
|
||||
|
||||
error = -ENOMEM;
|
||||
oud = kzalloc(sizeof(*oud), GFP_KERNEL);
|
||||
@ -499,7 +491,7 @@ static int osd_probe(struct device *dev)
|
||||
err_free_osd:
|
||||
put_device(&oud->class_dev);
|
||||
err_retract_minor:
|
||||
ida_remove(&osd_minor_ida, minor);
|
||||
ida_free(&osd_minor_ida, minor);
|
||||
return error;
|
||||
}
|
||||
|
||||
@ -514,7 +506,7 @@ static int osd_remove(struct device *dev)
|
||||
}
|
||||
|
||||
cdev_device_del(&oud->cdev, &oud->class_dev);
|
||||
ida_remove(&osd_minor_ida, oud->minor);
|
||||
ida_free(&osd_minor_ida, oud->minor);
|
||||
put_device(&oud->class_dev);
|
||||
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user