+ if (!data->ioc_inllen1 || !data->ioc_inlbuf1 ) {
+ CERROR("No name passed,!\n");
+ GOTO(out, err=-EINVAL);
+ }
+ if (data->ioc_inlbuf1[data->ioc_inllen1-1] !=0) {
+ CERROR("Name not nul terminated!\n");
+ GOTO(out, err=-EINVAL);
+ }
+
+ CDEBUG(D_IOCTL, "device name %s\n", data->ioc_inlbuf1);
+ dev = class_name2dev(data->ioc_inlbuf1);
+ data->ioc_dev = dev;
+ if (dev == -1) {
+ CDEBUG(D_IOCTL, "No device for name %s!\n",
+ data->ioc_inlbuf1);
+ GOTO(out, err=-EINVAL);
+ }
+
+ CDEBUG(D_IOCTL, "device name %s, dev %d\n", data->ioc_inlbuf1,
+ dev);
+ err = copy_to_user((void *)arg, data, sizeof(*data));
+ GOTO(out, err);
+ }
+
+ case OBD_IOC_UUID2DEV: {
+ /* Resolve a device uuid. This does not change the
+ * currently selected device.
+ */
+ int dev;
+
+ if (!data->ioc_inllen1 || !data->ioc_inlbuf1) {
+ CERROR("No UUID passed!\n");
+ GOTO(out, err=-EINVAL);
+ }
+ if (data->ioc_inlbuf1[data->ioc_inllen1-1] !=0) {
+ CERROR("Name not nul terminated!\n");
+ GOTO(out, err=-EINVAL);