From: Daan De Meyer Date: Wed, 14 May 2025 17:04:53 +0000 (+0200) Subject: discover-image: Move some logic to the implementation file X-Git-Tag: v258-rc1~615 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=73053472213b6f270886b62dc7a8a114fdb6519c;p=thirdparty%2Fsystemd.git discover-image: Move some logic to the implementation file This will allow removing the string-util.h and path-util.h includes as part of #37344. --- diff --git a/src/machine/image.c b/src/machine/image.c index f30c29e9ddf..41b40854d79 100644 --- a/src/machine/image.c +++ b/src/machine/image.c @@ -136,11 +136,11 @@ int image_clean_pool_operation(Manager *manager, ImageCleanPoolMode mode, Operat HASHMAP_FOREACH(image, images) { /* We can't remove vendor images (i.e. those in /usr) */ - if (IMAGE_IS_VENDOR(image)) + if (image_is_vendor(image)) continue; - if (IMAGE_IS_HOST(image)) + if (image_is_host(image)) continue; - if (mode == IMAGE_CLEAN_POOL_REMOVE_HIDDEN && !IMAGE_IS_HIDDEN(image)) + if (mode == IMAGE_CLEAN_POOL_REMOVE_HIDDEN && !image_is_hidden(image)) continue; r = image_remove(image); diff --git a/src/shared/discover-image.c b/src/shared/discover-image.c index 721ad2d0f20..57f72a83ea3 100644 --- a/src/shared/discover-image.c +++ b/src/shared/discover-image.c @@ -299,7 +299,7 @@ static int image_update_quota(Image *i, int fd) { assert(i); - if (IMAGE_IS_VENDOR(i) || IMAGE_IS_HOST(i)) + if (image_is_vendor(i) || image_is_host(i)) return -EROFS; if (i->type != IMAGE_SUBVOLUME) @@ -1094,7 +1094,7 @@ int image_remove(Image *i) { assert(i); - if (IMAGE_IS_VENDOR(i) || IMAGE_IS_HOST(i)) + if (image_is_vendor(i) || image_is_host(i)) return -EROFS; settings = image_settings_path(i); @@ -1189,7 +1189,7 @@ int image_rename(Image *i, const char *new_name, RuntimeScope scope) { if (!image_name_is_valid(new_name)) return -EINVAL; - if (IMAGE_IS_VENDOR(i) || IMAGE_IS_HOST(i)) + if (image_is_vendor(i) || image_is_host(i)) return -EROFS; settings = image_settings_path(i); @@ -1388,7 +1388,7 @@ int image_read_only(Image *i, bool b) { assert(i); - if (IMAGE_IS_VENDOR(i) || IMAGE_IS_HOST(i)) + if (image_is_vendor(i) || image_is_host(i)) return -EROFS; /* Make sure we don't interfere with a running nspawn */ @@ -1578,7 +1578,7 @@ int image_set_limit(Image *i, uint64_t referenced_max) { assert(i); - if (IMAGE_IS_VENDOR(i) || IMAGE_IS_HOST(i)) + if (image_is_vendor(i) || image_is_host(i)) return -EROFS; if (i->type != IMAGE_SUBVOLUME) @@ -1831,6 +1831,24 @@ bool image_in_search_path( return false; } +bool image_is_vendor(const struct Image *i) { + assert(i); + + return i->path && path_startswith(i->path, "/usr"); +} + +bool image_is_host(const struct Image *i) { + assert(i); + + if (i->name && streq(i->name, ".host")) + return true; + + if (i->path && path_equal(i->path, "/")) + return true; + + return false; +} + int image_to_json(const struct Image *img, sd_json_variant **ret) { assert(img); diff --git a/src/shared/discover-image.h b/src/shared/discover-image.h index 66dc7ef3d28..27d48713644 100644 --- a/src/shared/discover-image.h +++ b/src/shared/discover-image.h @@ -95,29 +95,14 @@ static inline char **image_extension_release(Image *image, ImageClass class) { return NULL; } -static inline bool IMAGE_IS_HIDDEN(const struct Image *i) { +static inline bool image_is_hidden(const struct Image *i) { assert(i); return i->name && i->name[0] == '.'; } -static inline bool IMAGE_IS_VENDOR(const struct Image *i) { - assert(i); - - return i->path && path_startswith(i->path, "/usr"); -} - -static inline bool IMAGE_IS_HOST(const struct Image *i) { - assert(i); - - if (i->name && streq(i->name, ".host")) - return true; - - if (i->path && path_equal(i->path, "/")) - return true; - - return false; -} +bool image_is_vendor(const struct Image *i); +bool image_is_host(const struct Image *i); int image_to_json(const struct Image *i, sd_json_variant **ret); diff --git a/src/sysupdate/sysupdated.c b/src/sysupdate/sysupdated.c index 9a8402482c9..430e46e6e99 100644 --- a/src/sysupdate/sysupdated.c +++ b/src/sysupdate/sysupdated.c @@ -1766,7 +1766,7 @@ static int manager_enumerate_image_class(Manager *m, TargetClass class) { _cleanup_(target_freep) Target *t = NULL; bool have = false; - if (IMAGE_IS_HOST(image)) + if (image_is_host(image)) continue; /* We already enroll the host ourselves */ r = target_new(m, class, image->name, image->path, &t);