From fda652117ef1832823c0fe67c0e6d26851d61b6a Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Mon, 5 May 2025 10:50:25 +0200 Subject: [PATCH] fs-util: Reduce transitive includes --- src/basic/btrfs.c | 1 + src/basic/cgroup-util.c | 1 + src/basic/chase.c | 1 + src/basic/fs-util.c | 19 +++++++++++++++ src/basic/fs-util.h | 23 ++++--------------- src/basic/lock-util.c | 1 + src/basic/mkdir.c | 1 + src/basic/mountpoint-util.c | 1 + src/basic/os-util.c | 1 + src/basic/path-util.c | 1 + src/basic/sync-util.c | 1 + src/basic/time-util.c | 1 + src/basic/tmpfile-util.c | 1 + src/binfmt/binfmt.c | 1 + src/core/exec-credential.c | 1 + src/core/exec-invoke.c | 1 + src/delta/delta.c | 1 + src/factory-reset/factory-reset-tool.c | 1 + src/libsystemd/sd-journal/catalog.c | 1 + src/libsystemd/sd-json/json-util.c | 1 + src/libsystemd/sd-network/sd-network.c | 1 + src/locale/localed-util.c | 1 + src/network/generator/main.c | 1 + src/pcrlock/pcrlock.c | 1 + src/random-seed/random-seed.c | 1 + src/shared/chown-recursive.c | 1 + src/shared/creds-util.c | 1 + src/shared/devnode-acl.c | 1 + src/shared/edit-util.c | 1 + src/shared/fstab-util.c | 1 + src/shared/label-util.c | 1 + src/shared/portable-util.c | 1 + src/shared/tpm2-util.c | 1 + src/shutdown/umount.c | 1 + src/sysupdate/sysupdate-instance.c | 1 + src/test/test-chase.c | 1 + src/test/test-conf-parser.c | 1 + src/test/test-socket-util.c | 1 + src/udev/udev-error.c | 3 +++ src/udev/udev-node.c | 1 + src/udev/udev-watch.c | 1 + src/update-done/update-done.c | 1 + src/validatefs/validatefs.c | 1 + src/vmspawn/vmspawn.c | 1 + .../test-xdg-autostart.c | 1 + 45 files changed, 68 insertions(+), 19 deletions(-) diff --git a/src/basic/btrfs.c b/src/basic/btrfs.c index bb07374def9..dc2d6a5ddbd 100644 --- a/src/basic/btrfs.c +++ b/src/basic/btrfs.c @@ -4,6 +4,7 @@ #include #include "btrfs.h" +#include "errno-util.h" #include "fd-util.h" #include "fs-util.h" #include "path-util.h" diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c index 8db7f07ba2d..aa88975bd92 100644 --- a/src/basic/cgroup-util.c +++ b/src/basic/cgroup-util.c @@ -16,6 +16,7 @@ #include "cgroup-util.h" #include "constants.h" #include "dirent-util.h" +#include "errno-util.h" #include "extract-word.h" #include "fd-util.h" #include "fileio.h" diff --git a/src/basic/chase.c b/src/basic/chase.c index 776c50ad181..954586dbf03 100644 --- a/src/basic/chase.c +++ b/src/basic/chase.c @@ -4,6 +4,7 @@ #include "alloc-util.h" #include "chase.h" +#include "errno-util.h" #include "fd-util.h" #include "fileio.h" #include "fs-util.h" diff --git a/src/basic/fs-util.c b/src/basic/fs-util.c index 3b619a15ac6..d306cc6d112 100644 --- a/src/basic/fs-util.c +++ b/src/basic/fs-util.c @@ -12,6 +12,7 @@ #include "btrfs.h" #include "chattr-util.h" #include "dirent-util.h" +#include "errno-util.h" #include "fd-util.h" #include "fileio.h" #include "fs-util.h" @@ -376,6 +377,10 @@ int fd_warn_permissions(const char *path, int fd) { return stat_warn_permissions(path, &st); } +int access_nofollow(const char *path, mode_t mode) { + return RET_NERRNO(faccessat(AT_FDCWD, path, mode, AT_SYMLINK_NOFOLLOW)); +} + int touch_fd(int fd, usec_t stamp) { assert(fd >= 0); @@ -425,6 +430,10 @@ int touch_file(const char *path, bool parents, usec_t stamp, uid_t uid, gid_t gi return RET_GATHER(ret, touch_fd(fd, stamp)); } +int touch(const char *path) { + return touch_file(path, false, USEC_INFINITY, UID_INVALID, GID_INVALID, MODE_INVALID); +} + int symlinkat_idempotent(const char *from, int atfd, const char *to, bool make_relative) { _cleanup_free_ char *relpath = NULL; int r; @@ -676,6 +685,16 @@ int unlink_or_warn(const char *filename) { return 0; } +char *rmdir_and_free(char *p) { + PROTECT_ERRNO; + + if (!p) + return NULL; + + (void) rmdir(p); + return mfree(p); +} + int access_fd(int fd, int mode) { assert(fd >= 0); diff --git a/src/basic/fs-util.h b/src/basic/fs-util.h index b2c01079901..9f2b37a2d6c 100644 --- a/src/basic/fs-util.h +++ b/src/basic/fs-util.h @@ -10,11 +10,9 @@ #include #include -#include "alloc-util.h" -#include "errno-util.h" #include "lock-util.h" +#include "memory-util.h" #include "time-util.h" -#include "user-util.h" #define MODE_INVALID ((mode_t) -1) @@ -51,16 +49,11 @@ int futimens_opath(int fd, const struct timespec ts[2]); int fd_warn_permissions(const char *path, int fd); int stat_warn_permissions(const char *path, const struct stat *st); -#define access_nofollow(path, mode) \ - RET_NERRNO(faccessat(AT_FDCWD, (path), (mode), AT_SYMLINK_NOFOLLOW)) +int access_nofollow(const char *path, mode_t mode); int touch_fd(int fd, usec_t stamp); - int touch_file(const char *path, bool parents, usec_t stamp, uid_t uid, gid_t gid, mode_t mode); - -static inline int touch(const char *path) { - return touch_file(path, false, USEC_INFINITY, UID_INVALID, GID_INVALID, MODE_INVALID); -} +int touch(const char *path); int symlinkat_idempotent(const char *from, int atfd, const char *to, bool make_relative); static inline int symlink_idempotent(const char *from, const char *to, bool make_relative) { @@ -90,15 +83,7 @@ int var_tmp_dir(const char **ret); int unlink_or_warn(const char *filename); /* Useful for usage with _cleanup_(), removes a directory and frees the pointer */ -static inline char *rmdir_and_free(char *p) { - PROTECT_ERRNO; - - if (!p) - return NULL; - - (void) rmdir(p); - return mfree(p); -} +char *rmdir_and_free(char *p); DEFINE_TRIVIAL_CLEANUP_FUNC(char*, rmdir_and_free); static inline char* unlink_and_free(char *p) { diff --git a/src/basic/lock-util.c b/src/basic/lock-util.c index ea0dcf720ed..f87ebb05c4b 100644 --- a/src/basic/lock-util.c +++ b/src/basic/lock-util.c @@ -10,6 +10,7 @@ #include #include "alloc-util.h" +#include "errno-util.h" #include "fd-util.h" #include "fs-util.h" #include "lock-util.h" diff --git a/src/basic/mkdir.c b/src/basic/mkdir.c index 90c06681bcd..a44add67de8 100644 --- a/src/basic/mkdir.c +++ b/src/basic/mkdir.c @@ -7,6 +7,7 @@ #include "alloc-util.h" #include "btrfs.h" #include "chase.h" +#include "errno-util.h" #include "fd-util.h" #include "format-util.h" #include "fs-util.h" diff --git a/src/basic/mountpoint-util.c b/src/basic/mountpoint-util.c index 23653160a0f..a66b9169d0a 100644 --- a/src/basic/mountpoint-util.c +++ b/src/basic/mountpoint-util.c @@ -6,6 +6,7 @@ #include "alloc-util.h" #include "chase.h" +#include "errno-util.h" #include "fd-util.h" #include "fileio.h" #include "filesystems.h" diff --git a/src/basic/os-util.c b/src/basic/os-util.c index bde36a9d4d6..cc6b0a7f51e 100644 --- a/src/basic/os-util.c +++ b/src/basic/os-util.c @@ -5,6 +5,7 @@ #include "dirent-util.h" #include "env-file.h" #include "env-util.h" +#include "errno-util.h" #include "fd-util.h" #include "fileio.h" #include "fs-util.h" diff --git a/src/basic/path-util.c b/src/basic/path-util.c index dbde364effd..dff1b0ebe4e 100644 --- a/src/basic/path-util.c +++ b/src/basic/path-util.c @@ -9,6 +9,7 @@ #include "alloc-util.h" #include "chase.h" +#include "errno-util.h" #include "extract-word.h" #include "fd-util.h" #include "fs-util.h" diff --git a/src/basic/sync-util.c b/src/basic/sync-util.c index aaae53529bb..4f0d41848a6 100644 --- a/src/basic/sync-util.c +++ b/src/basic/sync-util.c @@ -3,6 +3,7 @@ #include #include +#include "errno-util.h" #include "fd-util.h" #include "fs-util.h" #include "log.h" diff --git a/src/basic/time-util.c b/src/basic/time-util.c index 17850c7e163..59fb371e9ff 100644 --- a/src/basic/time-util.c +++ b/src/basic/time-util.c @@ -12,6 +12,7 @@ #include #include "alloc-util.h" +#include "errno-util.h" #include "fd-util.h" #include "fileio.h" #include "fs-util.h" diff --git a/src/basic/tmpfile-util.c b/src/basic/tmpfile-util.c index 371f2ae3a8b..9d2c0b71b9c 100644 --- a/src/basic/tmpfile-util.c +++ b/src/basic/tmpfile-util.c @@ -3,6 +3,7 @@ #include #include "alloc-util.h" +#include "errno-util.h" #include "fd-util.h" #include "fileio.h" #include "fs-util.h" diff --git a/src/binfmt/binfmt.c b/src/binfmt/binfmt.c index 76c00562121..eb91e916ded 100644 --- a/src/binfmt/binfmt.c +++ b/src/binfmt/binfmt.c @@ -14,6 +14,7 @@ #include "build.h" #include "conf-files.h" #include "constants.h" +#include "errno-util.h" #include "fd-util.h" #include "fileio.h" #include "log.h" diff --git a/src/core/exec-credential.c b/src/core/exec-credential.c index bed7ff3672c..1608e4c9b07 100644 --- a/src/core/exec-credential.c +++ b/src/core/exec-credential.c @@ -20,6 +20,7 @@ #include "recurse-dir.h" #include "rm-rf.h" #include "tmpfile-util.h" +#include "user-util.h" ExecSetCredential* exec_set_credential_free(ExecSetCredential *sc) { if (!sc) diff --git a/src/core/exec-invoke.c b/src/core/exec-invoke.c index d0c69d98ecf..b0bf5025767 100644 --- a/src/core/exec-invoke.c +++ b/src/core/exec-invoke.c @@ -64,6 +64,7 @@ #include "string-table.h" #include "strv.h" #include "terminal-util.h" +#include "user-util.h" #include "utmp-wtmp.h" #include "vpick.h" diff --git a/src/delta/delta.c b/src/delta/delta.c index 89815758b38..eb53999da90 100644 --- a/src/delta/delta.c +++ b/src/delta/delta.c @@ -9,6 +9,7 @@ #include "build.h" #include "chase.h" #include "dirent-util.h" +#include "errno-util.h" #include "fd-util.h" #include "fs-util.h" #include "glyph-util.h" diff --git a/src/factory-reset/factory-reset-tool.c b/src/factory-reset/factory-reset-tool.c index b32839656a2..73f37e7490b 100644 --- a/src/factory-reset/factory-reset-tool.c +++ b/src/factory-reset/factory-reset-tool.c @@ -9,6 +9,7 @@ #include "build.h" #include "device-util.h" #include "efivars.h" +#include "errno-util.h" #include "factory-reset.h" #include "fs-util.h" #include "json-util.h" diff --git a/src/libsystemd/sd-journal/catalog.c b/src/libsystemd/sd-journal/catalog.c index 4e3733ce2e9..1ecf335fb86 100644 --- a/src/libsystemd/sd-journal/catalog.c +++ b/src/libsystemd/sd-journal/catalog.c @@ -14,6 +14,7 @@ #include "alloc-util.h" #include "catalog.h" #include "conf-files.h" +#include "errno-util.h" #include "fd-util.h" #include "fileio.h" #include "fs-util.h" diff --git a/src/libsystemd/sd-json/json-util.c b/src/libsystemd/sd-json/json-util.c index 83c098b0cea..9bc12febe77 100644 --- a/src/libsystemd/sd-json/json-util.c +++ b/src/libsystemd/sd-json/json-util.c @@ -3,6 +3,7 @@ #include "alloc-util.h" #include "devnum-util.h" #include "env-util.h" +#include "errno-util.h" #include "fd-util.h" #include "glyph-util.h" #include "in-addr-util.h" diff --git a/src/libsystemd/sd-network/sd-network.c b/src/libsystemd/sd-network/sd-network.c index a7d860c8bab..a4b432b6ee2 100644 --- a/src/libsystemd/sd-network/sd-network.c +++ b/src/libsystemd/sd-network/sd-network.c @@ -8,6 +8,7 @@ #include "alloc-util.h" #include "env-file.h" +#include "errno-util.h" #include "fd-util.h" #include "fs-util.h" #include "inotify-util.h" diff --git a/src/locale/localed-util.c b/src/locale/localed-util.c index 76383589c08..bc0b2b98784 100644 --- a/src/locale/localed-util.c +++ b/src/locale/localed-util.c @@ -9,6 +9,7 @@ #include "env-file.h" #include "env-file-label.h" #include "env-util.h" +#include "errno-util.h" #include "fd-util.h" #include "fileio.h" #include "kbd-util.h" diff --git a/src/network/generator/main.c b/src/network/generator/main.c index c15dfa16cd7..78389ba3194 100644 --- a/src/network/generator/main.c +++ b/src/network/generator/main.c @@ -4,6 +4,7 @@ #include "build.h" #include "creds-util.h" +#include "errno-util.h" #include "fd-util.h" #include "fs-util.h" #include "generator.h" diff --git a/src/pcrlock/pcrlock.c b/src/pcrlock/pcrlock.c index 8e3a38929c1..8dcea205201 100644 --- a/src/pcrlock/pcrlock.c +++ b/src/pcrlock/pcrlock.c @@ -53,6 +53,7 @@ #include "tpm2-util.h" #include "unaligned.h" #include "unit-name.h" +#include "user-util.h" #include "utf8.h" #include "varlink-io.systemd.PCRLock.h" #include "varlink-util.h" diff --git a/src/random-seed/random-seed.c b/src/random-seed/random-seed.c index 3ddaea04a32..8ba359c93a0 100644 --- a/src/random-seed/random-seed.c +++ b/src/random-seed/random-seed.c @@ -13,6 +13,7 @@ #include "alloc-util.h" #include "build.h" +#include "errno-util.h" #include "fd-util.h" #include "fs-util.h" #include "io-util.h" diff --git a/src/shared/chown-recursive.c b/src/shared/chown-recursive.c index 06c5adb1e50..1bd2bb57057 100644 --- a/src/shared/chown-recursive.c +++ b/src/shared/chown-recursive.c @@ -6,6 +6,7 @@ #include "chown-recursive.h" #include "dirent-util.h" +#include "errno-util.h" #include "fd-util.h" #include "fs-util.h" #include "macro.h" diff --git a/src/shared/creds-util.c b/src/shared/creds-util.c index a4284075adc..67707dee1ec 100644 --- a/src/shared/creds-util.c +++ b/src/shared/creds-util.c @@ -18,6 +18,7 @@ #include "creds-util.h" #include "efi-api.h" #include "env-util.h" +#include "errno-util.h" #include "fd-util.h" #include "fileio.h" #include "find-esp.h" diff --git a/src/shared/devnode-acl.c b/src/shared/devnode-acl.c index 2015bd76416..81961c5b05d 100644 --- a/src/shared/devnode-acl.c +++ b/src/shared/devnode-acl.c @@ -9,6 +9,7 @@ #include "device-util.h" #include "devnode-acl.h" #include "dirent-util.h" +#include "errno-util.h" #include "fd-util.h" #include "format-util.h" #include "fs-util.h" diff --git a/src/shared/edit-util.c b/src/shared/edit-util.c index 56c6133db79..becb9c54b76 100644 --- a/src/shared/edit-util.c +++ b/src/shared/edit-util.c @@ -6,6 +6,7 @@ #include "alloc-util.h" #include "copy.h" #include "edit-util.h" +#include "errno-util.h" #include "fd-util.h" #include "fileio.h" #include "fs-util.h" diff --git a/src/shared/fstab-util.c b/src/shared/fstab-util.c index 6cfff217430..b59e4838d80 100644 --- a/src/shared/fstab-util.c +++ b/src/shared/fstab-util.c @@ -6,6 +6,7 @@ #include "alloc-util.h" #include "device-nodes.h" +#include "errno-util.h" #include "fstab-util.h" #include "initrd-util.h" #include "libmount-util.h" diff --git a/src/shared/label-util.c b/src/shared/label-util.c index 2c482daaf6c..a7723438662 100644 --- a/src/shared/label-util.c +++ b/src/shared/label-util.c @@ -5,6 +5,7 @@ #include #include "btrfs-util.h" +#include "errno-util.h" #include "fs-util.h" #include "label.h" #include "label-util.h" diff --git a/src/shared/portable-util.c b/src/shared/portable-util.c index 1766171164a..c472c2fea6e 100644 --- a/src/shared/portable-util.c +++ b/src/shared/portable-util.c @@ -1,5 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ +#include "alloc-util.h" #include "fs-util.h" #include "log.h" #include "nulstr-util.h" diff --git a/src/shared/tpm2-util.c b/src/shared/tpm2-util.c index f14e9eeae48..afef7abc4ea 100644 --- a/src/shared/tpm2-util.c +++ b/src/shared/tpm2-util.c @@ -38,6 +38,7 @@ #include "sync-util.h" #include "time-util.h" #include "tpm2-util.h" +#include "user-util.h" #include "virt.h" #if HAVE_OPENSSL diff --git a/src/shutdown/umount.c b/src/shutdown/umount.c index ba87a992bc7..9b083d24921 100644 --- a/src/shutdown/umount.c +++ b/src/shutdown/umount.c @@ -28,6 +28,7 @@ #include "random-util.h" #include "signal-util.h" #include "umount.h" +#include "user-util.h" #include "virt.h" static void mount_point_free(MountPoint **head, MountPoint *m) { diff --git a/src/sysupdate/sysupdate-instance.c b/src/sysupdate/sysupdate-instance.c index aef16c35dcd..b06fe9bc965 100644 --- a/src/sysupdate/sysupdate-instance.c +++ b/src/sysupdate/sysupdate-instance.c @@ -3,6 +3,7 @@ #include #include +#include "alloc-util.h" #include "log.h" #include "sysupdate-instance.h" diff --git a/src/test/test-chase.c b/src/test/test-chase.c index 09baae64fd0..469e0b5a39b 100644 --- a/src/test/test-chase.c +++ b/src/test/test-chase.c @@ -15,6 +15,7 @@ #include "string-util.h" #include "tests.h" #include "tmpfile-util.h" +#include "user-util.h" static const char *arg_test_dir = NULL; diff --git a/src/test/test-conf-parser.c b/src/test/test-conf-parser.c index 6989d470b15..d00444e24f8 100644 --- a/src/test/test-conf-parser.c +++ b/src/test/test-conf-parser.c @@ -12,6 +12,7 @@ #include "strv.h" #include "tests.h" #include "tmpfile-util.h" +#include "user-util.h" static void test_config_parse_path_one(const char *rvalue, const char *expected) { _cleanup_free_ char *path = NULL; diff --git a/src/test/test-socket-util.c b/src/test/test-socket-util.c index acf11f3639d..ba2b4470d1c 100644 --- a/src/test/test-socket-util.c +++ b/src/test/test-socket-util.c @@ -25,6 +25,7 @@ #include "string-util.h" #include "tests.h" #include "tmpfile-util.h" +#include "user-util.h" assert_cc(SUN_PATH_LEN == 108); diff --git a/src/udev/udev-error.c b/src/udev/udev-error.c index fea14e3ffe7..bc438dfaf8d 100644 --- a/src/udev/udev-error.c +++ b/src/udev/udev-error.c @@ -1,7 +1,10 @@ /* SPDX-License-Identifier: GPL-2.0-or-later */ +#include + #include "device-private.h" #include "errno-list.h" +#include "errno-util.h" #include "signal-util.h" #include "udev-error.h" diff --git a/src/udev/udev-node.c b/src/udev/udev-node.c index 673f723ff21..2df5d54feef 100644 --- a/src/udev/udev-node.c +++ b/src/udev/udev-node.c @@ -9,6 +9,7 @@ #include "device-util.h" #include "devnum-util.h" #include "dirent-util.h" +#include "errno-util.h" #include "escape.h" #include "fd-util.h" #include "fileio.h" diff --git a/src/udev/udev-watch.c b/src/udev/udev-watch.c index 2d3127eee99..003f61293f4 100644 --- a/src/udev/udev-watch.c +++ b/src/udev/udev-watch.c @@ -9,6 +9,7 @@ #include "daemon-util.h" #include "device-util.h" #include "dirent-util.h" +#include "errno-util.h" #include "event-util.h" #include "fd-util.h" #include "fs-util.h" diff --git a/src/update-done/update-done.c b/src/update-done/update-done.c index cb6822bddda..b39b9c44581 100644 --- a/src/update-done/update-done.c +++ b/src/update-done/update-done.c @@ -7,6 +7,7 @@ #include "alloc-util.h" #include "chase.h" +#include "errno-util.h" #include "fd-util.h" #include "fileio.h" #include "log.h" diff --git a/src/validatefs/validatefs.c b/src/validatefs/validatefs.c index 2499a7e20fa..db32fe3c230 100644 --- a/src/validatefs/validatefs.c +++ b/src/validatefs/validatefs.c @@ -7,6 +7,7 @@ #include "build.h" #include "chase.h" #include "device-util.h" +#include "errno-util.h" #include "fd-util.h" #include "initrd-util.h" #include "main-func.h" diff --git a/src/vmspawn/vmspawn.c b/src/vmspawn/vmspawn.c index 1034349e872..7c12b5e6120 100644 --- a/src/vmspawn/vmspawn.c +++ b/src/vmspawn/vmspawn.c @@ -74,6 +74,7 @@ #include "time-util.h" #include "tmpfile-util.h" #include "unit-name.h" +#include "user-util.h" #include "utf8.h" #include "vmspawn-mount.h" #include "vmspawn-register.h" diff --git a/src/xdg-autostart-generator/test-xdg-autostart.c b/src/xdg-autostart-generator/test-xdg-autostart.c index 81f85d6b156..edad2452bec 100644 --- a/src/xdg-autostart-generator/test-xdg-autostart.c +++ b/src/xdg-autostart-generator/test-xdg-autostart.c @@ -7,6 +7,7 @@ #include "strv.h" #include "tests.h" #include "tmpfile-util.h" +#include "user-util.h" #include "xdg-autostart-service.h" TEST(translate_name) { -- 2.47.3