fs-util: add simple open_mkdir() wrapper

This commit is contained in:
Lennart Poettering 2024-06-06 15:23:01 +02:00 committed by Luca Boccassi
parent b22635083a
commit c29778a100
6 changed files with 8 additions and 5 deletions

View file

@ -137,6 +137,9 @@ int open_mkdir_at_full(int dirfd, const char *path, int flags, XOpenFlags xopen_
static inline int open_mkdir_at(int dirfd, const char *path, int flags, mode_t mode) { static inline int open_mkdir_at(int dirfd, const char *path, int flags, mode_t mode) {
return open_mkdir_at_full(dirfd, path, flags, 0, mode); return open_mkdir_at_full(dirfd, path, flags, 0, mode);
} }
static inline int open_mkdir(const char *path, int flags, mode_t mode) {
return open_mkdir_at_full(AT_FDCWD, path, flags, 0, mode);
}
int openat_report_new(int dirfd, const char *pathname, int flags, mode_t mode, bool *ret_newly_created); int openat_report_new(int dirfd, const char *pathname, int flags, mode_t mode, bool *ret_newly_created);

View file

@ -2805,7 +2805,7 @@ static int make_tmp_prefix(const char *prefix) {
/* umask will corrupt this access mode, but that doesn't matter, we need to call chmod() anyway for /* umask will corrupt this access mode, but that doesn't matter, we need to call chmod() anyway for
* the suid bit, below. */ * the suid bit, below. */
fd = open_mkdir_at(AT_FDCWD, t, O_EXCL|O_CLOEXEC, 0777); fd = open_mkdir(t, O_EXCL|O_CLOEXEC, 0777);
if (fd < 0) if (fd < 0)
return fd; return fd;

View file

@ -133,7 +133,7 @@ int home_setup_cifs(
return log_oom(); return log_oom();
if (FLAGS_SET(flags, HOME_SETUP_CIFS_MKDIR)) { if (FLAGS_SET(flags, HOME_SETUP_CIFS_MKDIR)) {
setup->root_fd = open_mkdir_at(AT_FDCWD, j, O_CLOEXEC, 0700); setup->root_fd = open_mkdir(j, O_CLOEXEC, 0700);
if (setup->root_fd < 0) if (setup->root_fd < 0)
return log_error_errno(setup->root_fd, "Failed to create CIFS subdirectory: %m"); return log_error_errno(setup->root_fd, "Failed to create CIFS subdirectory: %m");
} }

View file

@ -478,7 +478,7 @@ int get_credential_host_secret(CredentialSecretFlags flags, struct iovec *ret) {
assert(filename); assert(filename);
mkdir_parents(dirname, 0755); mkdir_parents(dirname, 0755);
dfd = open_mkdir_at(AT_FDCWD, dirname, O_CLOEXEC, 0755); dfd = open_mkdir(dirname, O_CLOEXEC, 0755);
if (dfd < 0) if (dfd < 0)
return log_debug_errno(dfd, "Failed to create or open directory '%s': %m", dirname); return log_debug_errno(dfd, "Failed to create or open directory '%s': %m", dirname);

View file

@ -375,7 +375,7 @@ static int stack_directory_open(sd_device *dev, const char *slink, int *ret_dirf
if (r < 0) if (r < 0)
return log_device_debug_errno(dev, r, "Failed to create stack directory '%s': %m", dirname); return log_device_debug_errno(dev, r, "Failed to create stack directory '%s': %m", dirname);
dirfd = open_mkdir_at(AT_FDCWD, dirname, O_CLOEXEC | O_DIRECTORY | O_NOFOLLOW | O_RDONLY, 0755); dirfd = open_mkdir(dirname, O_CLOEXEC | O_DIRECTORY | O_NOFOLLOW | O_RDONLY, 0755);
if (dirfd < 0) if (dirfd < 0)
return log_device_debug_errno(dev, dirfd, "Failed to open stack directory '%s': %m", dirname); return log_device_debug_errno(dev, dirfd, "Failed to open stack directory '%s': %m", dirname);

View file

@ -192,7 +192,7 @@ int udev_watch_begin(int inotify_fd, sd_device *dev) {
if (r < 0) if (r < 0)
return log_device_debug_errno(dev, r, "Failed to get device ID: %m"); return log_device_debug_errno(dev, r, "Failed to get device ID: %m");
r = dirfd = open_mkdir_at(AT_FDCWD, "/run/udev/watch", O_CLOEXEC | O_RDONLY, 0755); r = dirfd = open_mkdir("/run/udev/watch", O_CLOEXEC | O_RDONLY, 0755);
if (r < 0) if (r < 0)
return log_device_debug_errno(dev, r, "Failed to create and open '/run/udev/watch/': %m"); return log_device_debug_errno(dev, r, "Failed to create and open '/run/udev/watch/': %m");