staging: usbip: userspace: suppress a bogus error
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@research.bell-labs.com> Acked-by: David Chang <dchang@suse.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
107fefd4dd
Коммит
82692d202a
|
@ -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);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче