ret = mkdir(path, md);
err = errno;
- switch (ret) {
- case 0:
- break;
-
- case EACCES:
- case ENOTDIR:
- case EPERM:
- goto failed;
-
- case EEXIST:
- default:
- ret = stat(path, &sb);
- if (ret == 0) {
- if (!S_ISDIR(sb.st_mode)) {
- err = ENOTDIR;
- goto failed;
+ if (ret != 0) {
+ switch (err) {
+ case EACCES:
+ case ENOTDIR:
+ case EPERM:
+ goto failed;
+
+ case EEXIST:
+ default:
+ ret = stat(path, &sb);
+ if (ret == 0) {
+ if (!S_ISDIR(sb.st_mode)) {
+ err = ENOTDIR;
+ goto failed;
+ }
+
+ break;
}
- break;
+ goto failed;
}
-
- goto failed;
}
if (p == end) {
ret = mkdir(path, md);
err = errno;
- switch (ret) {
- case 0:
- break;
-
- case EACCES:
- case ENOTDIR:
- case EPERM:
- goto failed;
-
- case EEXIST:
- default:
- ret = stat(path, &sb);
- if (ret == 0) {
- if (!S_ISDIR(sb.st_mode)) {
- err = ENOTDIR;
- goto failed;
+ if (ret != 0) {
+ switch (err) {
+ case EACCES:
+ case ENOTDIR:
+ case EPERM:
+ goto failed;
+
+ case EEXIST:
+ default:
+ ret = stat(path, &sb);
+ if (ret == 0) {
+ if (!S_ISDIR(sb.st_mode)) {
+ err = ENOTDIR;
+ goto failed;
+ }
+
+ break;
}
- break;
+ goto failed;
}
-
- goto failed;
}
if (p == end) {