From: pschwan Date: Thu, 7 Mar 2002 22:36:24 +0000 (+0000) Subject: - typing 'quit' was not cleaning up obdctl connections. fixed. X-Git-Tag: 0.4.2~554 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=eb8fb89766d273e57cb15da10b3da22141a78c49;p=fs%2Flustre-release.git - typing 'quit' was not cleaning up obdctl connections. fixed. - switching devices also closes connections now. --- diff --git a/lustre/utils/obdctl.c b/lustre/utils/obdctl.c index 0f8d9f7..9a62c9a 100644 --- a/lustre/utils/obdctl.c +++ b/lustre/utils/obdctl.c @@ -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; diff --git a/lustre/utils/parser.c b/lustre/utils/parser.c index d3087a7..3a55c84 100644 --- a/lustre/utils/parser.c +++ b/lustre/utils/parser.c @@ -580,6 +580,6 @@ int Parser_quit(int argc, char **argv) { argc = argc; argv = argv; - exit(0); + done = 1; return 0; }