]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
dissect-image: introduce dissected_image_relinquish()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sun, 11 Sep 2022 14:23:22 +0000 (23:23 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Sun, 18 Sep 2022 14:47:20 +0000 (23:47 +0900)
src/shared/dissect-image.c
src/shared/dissect-image.h

index eb319a9ff9d3c77f51c2b439d5a622807a6b8f8a..4949b4c9ee1b08c8f5ece9c7deb9ba3bf8830229 100644 (file)
@@ -2239,6 +2239,23 @@ int decrypted_image_relinquish(DecryptedImage *d) {
         return 0;
 }
 
+int dissected_image_relinquish(DissectedImage *m) {
+        int r;
+
+        assert(m);
+
+        if (m->decrypted_image) {
+                r = decrypted_image_relinquish(m->decrypted_image);
+                if (r < 0)
+                        return r;
+        }
+
+        if (m->loop)
+                loop_device_relinquish(m->loop);
+
+        return 0;
+}
+
 static char *build_auxiliary_path(const char *image, const char *suffix) {
         const char *e;
         char *n;
index c49bff0e5de0ccf62dbbbd6c6b635fe886f6d9f0..c385bb44d9059831d9514129a86ba3fac2224f26 100644 (file)
@@ -285,7 +285,9 @@ int dissected_image_acquire_metadata(DissectedImage *m, DissectImageFlags extra_
 DecryptedImage* decrypted_image_ref(DecryptedImage *p);
 DecryptedImage* decrypted_image_unref(DecryptedImage *p);
 DEFINE_TRIVIAL_CLEANUP_FUNC(DecryptedImage*, decrypted_image_unref);
+
 int decrypted_image_relinquish(DecryptedImage *d);
+int dissected_image_relinquish(DissectedImage *m);
 
 const char* partition_designator_to_string(PartitionDesignator d) _const_;
 PartitionDesignator partition_designator_from_string(const char *name) _pure_;