return data.ioc_dev + N2D_OFF;
}
-static int do_uuid2dev(char *func, char *uuid)
-{
- struct obd_ioctl_data data;
- int rc;
-
- IOC_INIT(data);
-
- data.ioc_inllen1 = strlen(uuid) + 1;
- data.ioc_inlbuf1 = uuid;
-
- IOC_PACK(func, data);
- rc = l_ioctl(OBD_DEV_ID, OBD_IOC_UUID2DEV, buf);
- if (rc < 0)
- return errno;
- IOC_UNPACK(func, data);
-
- return data.ioc_dev + N2D_OFF;
-}
-
/*
* resolve a device name to a device number.
* supports a number, $name or %uuid.
if (!name)
return ret;
- if (name[0] == '$') {
+ if (name[0] == '$' || name[0] == '%') {
name++;
rc = do_name2dev(func, name);
if (rc >= N2D_OFF) {
printf("No device found for name %s: %s\n",
name, strerror(rc));
}
- } else if (name[0] == '%') {
- name++;
- rc = do_uuid2dev(func, name);
- if (rc >= N2D_OFF) {
- ret = rc - N2D_OFF;
- printf("UUID %s is device %d\n", name, ret);
- } else {
- printf("No device found for UUID %s: %s\n",
- name, strerror(rc));
- }
} else {
/* Assume it's a number. This means that bogus strings become
* 0. I might care about that some day. */
return rc;
}
+int jt_opt_net(int argc, char **argv)
+{
+ char *arg2[3];
+ int rc;
+
+ if (argc < 3)
+ return CMD_HELP;
+
+ arg2[0] = argv[0];
+ arg2[1] = argv[1];
+ arg2[2] = NULL;
+ rc = jt_ptl_network (2, arg2);
+
+ if (!rc)
+ rc = Parser_execarg(argc - 2, argv + 2, cmdlist);
+
+ return rc;
+}
+
int jt_obd_detach(int argc, char **argv)
{
struct obd_ioctl_data data;
IOC_INIT(data);
- if (argc > 4)
+ if (argc > 5)
return CMD_HELP;
data.ioc_dev = -1;
data.ioc_inllen3 = strlen(argv[3]) + 1;
data.ioc_inlbuf3 = argv[3];
}
+ if (argc > 4) {
+ data.ioc_inllen4 = strlen(argv[4]) + 1;
+ data.ioc_inlbuf4 = argv[4];
+ }
IOC_PACK(argv[0], data);
rc = l_ioctl(OBD_DEV_ID, OBD_IOC_SETUP, buf);
nal = ptl_name2nal(argv[3]);
- if (nal == 0) {
+ if (nal <= 0) {
fprintf (stderr, "Can't parse NAL %s\n", argv[3]);
return -1;
}
nal = ptl_name2nal(argv[2]);
- if (nal == 0) {
+ if (nal <= 0) {
fprintf (stderr, "Can't parse NAL %s\n", argv[2]);
return -1;
}