usb: usbip: userspace: remove the port state file when detaching port.
authorHarvey Yang <harvey.huawei.yang@gmail.com>
Thu, 15 Nov 2012 08:32:49 +0000 (16:32 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 16 Nov 2012 01:47:29 +0000 (17:47 -0800)
with the last detached port state file remaining, usbip reports error on
attaching. So clean up the state files on detaching.

Signed-off-by: Harvey Yang <harvey.huawei.yang@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/usbip/userspace/src/usbip_detach.c

index 89bf3c195c2842f0a3f2078a8859dc65ac5d488a..dac5f065755adbfaab00278e4f35403440db3d10 100644 (file)
@@ -19,6 +19,7 @@
 #include <sysfs/libsysfs.h>
 
 #include <ctype.h>
+#include <limits.h>
 #include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -46,6 +47,7 @@ static int detach_port(char *port)
 {
        int ret;
        uint8_t portnum;
+       char path[PATH_MAX+1];
 
        for (unsigned int i=0; i < strlen(port); i++)
                if (!isdigit(port[i])) {
@@ -57,6 +59,13 @@ static int detach_port(char *port)
 
        portnum = atoi(port);
 
+       /* remove the port state file */
+
+       snprintf(path, PATH_MAX, VHCI_STATE_PATH"/port%d", portnum);
+
+       remove(path);
+       rmdir(VHCI_STATE_PATH);
+
        ret = usbip_vhci_driver_open();
        if (ret < 0) {
                err("open vhci_driver");