Merge pull request #7663 from keszybz/mkdir-return-value
util-lib: fix return value in mkdir_parents()
This commit is contained in:
@@ -474,9 +474,9 @@ static int mkdir_userns(const char *path, mode_t mode, MountSettingsMask mask, u
|
||||
|
||||
assert(path);
|
||||
|
||||
r = mkdir(path, mode);
|
||||
if (r < 0 && errno != EEXIST)
|
||||
return -errno;
|
||||
r = mkdir_errno_wrapper(path, mode);
|
||||
if (r < 0 && r != -EEXIST)
|
||||
return r;
|
||||
|
||||
if ((mask & MOUNT_USE_USERNS) == 0)
|
||||
return 0;
|
||||
@@ -484,8 +484,7 @@ static int mkdir_userns(const char *path, mode_t mode, MountSettingsMask mask, u
|
||||
if (mask & MOUNT_IN_USERNS)
|
||||
return 0;
|
||||
|
||||
r = lchown(path, uid_shift, uid_shift);
|
||||
if (r < 0)
|
||||
if (lchown(path, uid_shift, uid_shift) < 0)
|
||||
return -errno;
|
||||
|
||||
return 0;
|
||||
|
||||
+14
-10
@@ -1313,13 +1313,14 @@ static int userns_lchown(const char *p, uid_t uid, gid_t gid) {
|
||||
|
||||
static int userns_mkdir(const char *root, const char *path, mode_t mode, uid_t uid, gid_t gid) {
|
||||
const char *q;
|
||||
int r;
|
||||
|
||||
q = prefix_roota(root, path);
|
||||
if (mkdir(q, mode) < 0) {
|
||||
if (errno == EEXIST)
|
||||
return 0;
|
||||
return -errno;
|
||||
}
|
||||
r = mkdir_errno_wrapper(q, mode);
|
||||
if (r == -EEXIST)
|
||||
return 0;
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
return userns_lchown(q, uid, gid);
|
||||
}
|
||||
@@ -1599,8 +1600,10 @@ static int setup_pts(const char *dest) {
|
||||
|
||||
/* Mount /dev/pts itself */
|
||||
p = prefix_roota(dest, "/dev/pts");
|
||||
if (mkdir(p, 0755) < 0)
|
||||
return log_error_errno(errno, "Failed to create /dev/pts: %m");
|
||||
r = mkdir_errno_wrapper(p, 0755);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to create /dev/pts: %m");
|
||||
|
||||
r = mount_verbose(LOG_ERR, "devpts", p, "devpts", MS_NOSUID|MS_NOEXEC, options);
|
||||
if (r < 0)
|
||||
return r;
|
||||
@@ -1846,12 +1849,13 @@ static int setup_journal(const char *directory) {
|
||||
/* don't create parents here — if the host doesn't have
|
||||
* permanent journal set up, don't force it here */
|
||||
|
||||
if (mkdir(p, 0755) < 0 && errno != EEXIST) {
|
||||
r = mkdir_errno_wrapper(p, 0755);
|
||||
if (r < 0 && r != -EEXIST) {
|
||||
if (try) {
|
||||
log_debug_errno(errno, "Failed to create %s, skipping journal setup: %m", p);
|
||||
log_debug_errno(r, "Failed to create %s, skipping journal setup: %m", p);
|
||||
return 0;
|
||||
} else
|
||||
return log_error_errno(errno, "Failed to create %s: %m", p);
|
||||
return log_error_errno(r, "Failed to create %s: %m", p);
|
||||
}
|
||||
|
||||
} else if (access(p, F_OK) < 0)
|
||||
|
||||
Reference in New Issue
Block a user