Whamcloud - gitweb
- typing 'quit' was not cleaning up obdctl connections. fixed.
authorpschwan <pschwan>
Thu, 7 Mar 2002 22:36:24 +0000 (22:36 +0000)
committerpschwan <pschwan>
Thu, 7 Mar 2002 22:36:24 +0000 (22:36 +0000)
- switching devices also closes connections now.

lustre/utils/obdctl.c
lustre/utils/parser.c

index 0f8d9f7..9a62c9a 100644 (file)
@@ -115,11 +115,35 @@ char * obdo_print(struct obdo *obd)
         return strdup(buf);
 }
 
+static int do_disconnect()
+{
+        struct obd_ioctl_data data;
+        int rc;
+
+        if (connid == -1)
+                return 0;
+
+        IOCINIT(data);
+
+        rc = ioctl(fd, OBD_IOC_DISCONNECT , &data);
+        if (rc < 0) {
+                printf("Device: %x %s\n", OBD_IOC_DISCONNECT, strerror(errno));
+                return 0;
+        } else {
+                printf("Disconnected connid %d\n", connid);
+        }
+        connid = -1;
+
+        return 0;
+}
+
 static int jt_device(int argc, char **argv)
 {
         struct obd_ioctl_data data;
         int rc;
 
+        do_disconnect();
+
         memset(&data, 0, sizeof(data));
         if ( argc != 2 ) {
                 fprintf(stderr, "Usage: %s devno\n", argv[0]);
@@ -149,26 +173,6 @@ static int jt_device(int argc, char **argv)
         return 0;
 }
 
-static int do_disconnect()
-{
-        struct obd_ioctl_data data;
-        int rc;
-        
-        if (connid == -1) 
-                return 0;
-
-        IOCINIT(data);
-
-        rc = ioctl(fd, OBD_IOC_DISCONNECT , &data);
-        if (rc < 0) {
-                printf("Device: %x %s\n", OBD_IOC_DISCONNECT, strerror(errno));
-                return 0;
-        }
-        connid = -1;
-
-        return 0;
-}
-
 static int jt_connect(int argc, char **argv)
 {
         struct obd_ioctl_data data;
index d3087a7..3a55c84 100644 (file)
@@ -580,6 +580,6 @@ int Parser_quit(int argc, char **argv)
 {
        argc = argc;
        argv = argv;
-       exit(0);
+       done = 1; 
        return 0;
 }