Hi, 2012/12/8 Ilija Hadzic <ihadzic@xxxxxxxxxxxxxxxxxxxxxx>: > If mkdir() of VHCI_STATE_PATH fails because the directory > already exists, that's not an error. This patch fixes > annoying "record connection" errors that would typically > come up on attach. > > Signed-off-by: Ilija Hadzic <ihadzic@xxxxxxxxxxxxxxxxxxxxxx> > --- > drivers/staging/usbip/userspace/src/usbip_attach.c | 15 +++++++++++++-- > 1 file changed, 13 insertions(+), 2 deletions(-) > > diff --git a/drivers/staging/usbip/userspace/src/usbip_attach.c b/drivers/staging/usbip/userspace/src/usbip_attach.c > index bdf61c0..2da4e44 100644 > --- a/drivers/staging/usbip/userspace/src/usbip_attach.c > +++ b/drivers/staging/usbip/userspace/src/usbip_attach.c > @@ -27,6 +27,7 @@ > #include <fcntl.h> > #include <getopt.h> > #include <unistd.h> > +#include <errno.h> > > #include "vhci_driver.h" > #include "usbip_common.h" > @@ -52,8 +53,18 @@ static int record_connection(char *host, char *port, char *busid, int rhport) > int ret; > > ret = mkdir(VHCI_STATE_PATH, 0700); > - if (ret < 0) > - return -1; > + if (ret < 0) { > + /* if VHCI_STATE_PATH exists, then it better be a directory */ > + if (errno == EEXIST) { > + struct stat s; > + ret = stat(VHCI_STATE_PATH, &s); > + if (ret < 0) > + return -1; > + if (!(s.st_mode & S_IFDIR)) > + return -1; > + } else > + return -1; > + } > > snprintf(path, PATH_MAX, VHCI_STATE_PATH"/port%d", rhport); > The patch looks good to me. Acked-by: David Chang <dchang@xxxxxxxx> > -- > 1.7.12 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-usb" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html