]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-fs: Add fs_file_free() to run common deinit code
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Fri, 29 Nov 2019 14:53:47 +0000 (16:53 +0200)
committertimo.sirainen <timo.sirainen@open-xchange.com>
Wed, 11 Dec 2019 10:12:30 +0000 (10:12 +0000)
src/lib-fs/fs-api-private.h
src/lib-fs/fs-api.c
src/lib-fs/fs-dict.c
src/lib-fs/fs-metawrap.c
src/lib-fs/fs-posix.c
src/lib-fs/fs-randomfail.c
src/lib-fs/fs-sis-queue.c
src/lib-fs/fs-sis.c
src/lib-fs/fs-test.c
src/plugins/fs-compress/fs-compress.c
src/plugins/mail-crypt/fs-crypt-common.c

index 0b2d4c1660a1b9ac5fffc5640d19856c6198c497..77ee85fa8346113c22d4e9f30e63cfcebaa2d908 100644 (file)
@@ -187,6 +187,7 @@ fs_file_init_parent(struct fs_file *parent, const char *path, int mode_flags);
 struct fs_iter *
 fs_iter_init_parent(struct fs_iter *parent,
                    const char *path, enum fs_iter_flags flags);
+void fs_file_free(struct fs_file *file);
 
 /* Same as fs_write_stream_abort_error(), except it closes the *parent* file
    and error is left untouched */
index 3270857bf326a05c630858fbafbcfe359e088f10..700c6aacc78bdfa3f0adf6b0bab68e64304048d8 100644 (file)
@@ -314,6 +314,11 @@ void fs_file_deinit(struct fs_file **_file)
                pool_unref(&metadata_pool);
 }
 
+void fs_file_free(struct fs_file *file)
+{
+       fs_file_deinit(&file->parent);
+}
+
 void fs_file_close(struct fs_file *file)
 {
        if (file == NULL)
index 556a9c5fb28f2745ba31c2984c4755896c8419f5..1cb635387d6732c7f88f40bcd5919a55d6914569 100644 (file)
@@ -136,6 +136,7 @@ static void fs_dict_file_deinit(struct fs_file *_file)
 
        i_assert(_file->output == NULL);
 
+       fs_file_free(_file);
        pool_unref(&file->pool);
 }
 
index 3c8af751f8bb89f16873fd7d837ad5206562d4e0..37fb9af80c7af70df015dce13529c26101df608c 100644 (file)
@@ -133,7 +133,7 @@ static void fs_metawrap_file_deinit(struct fs_file *_file)
        if (file->super_read != _file->parent)
                fs_file_deinit(&file->super_read);
        str_free(&file->metadata_header);
-       fs_file_deinit(&_file->parent);
+       fs_file_free(_file);
        i_free(file->file.path);
        i_free(file);
 }
index 98974910d60d670bd70ae40def865e33936090b9..3c12387bc21df4e7d1e40afefce18343d2d45747 100644 (file)
@@ -388,6 +388,7 @@ static void fs_posix_file_deinit(struct fs_file *_file)
                break;
        }
 
+       fs_file_free(_file);
        i_free(file->temp_path);
        i_free(file->full_path);
        i_free(file->file.path);
index 2b6b5d335bfaaf3c10bcb2cc103eb9a4e2d2316a..6acdd5e08bf675a53e3d531c44c1d206a6c9453b 100644 (file)
@@ -227,7 +227,7 @@ static void fs_randomfail_file_deinit(struct fs_file *_file)
 {
        struct randomfail_fs_file *file = (struct randomfail_fs_file *)_file;
 
-       fs_file_deinit(&file->file.parent);
+       fs_file_free(_file);
        i_free(file->file.path);
        i_free(file);
 }
index ae02d59f158fff1c611e6e3c75b1dcd7a8b0268a..f5f894d8b992f77e0d36939fa6fd8f9e5fba3bb8 100644 (file)
@@ -90,7 +90,7 @@ static void fs_sis_queue_file_deinit(struct fs_file *_file)
 {
        struct sis_queue_fs_file *file = (struct sis_queue_fs_file *)_file;
 
-       fs_file_deinit(&_file->parent);
+       fs_file_free(_file);
        i_free(file->file.path);
        i_free(file);
 }
index 6bac863df2dd3d2eff08eaf9a7dfc6c58da4444f..c0979aa8e5aac2976d95ef2597015a984a23dd55 100644 (file)
@@ -123,7 +123,7 @@ static void fs_sis_file_deinit(struct fs_file *_file)
        struct sis_fs_file *file = (struct sis_fs_file *)_file;
 
        fs_file_deinit(&file->hash_file);
-       fs_file_deinit(&_file->parent);
+       fs_file_free(_file);
        i_free(file->hash);
        i_free(file->hash_path);
        i_free(file->file.path);
index 7eef5fb0cb634e04ac804df105b8c617359d2db6..fa753a39dac29ca6f4eab7582d4a97679e79166b 100644 (file)
@@ -64,6 +64,7 @@ static void fs_test_file_deinit(struct fs_file *_file)
 {
        struct test_fs_file *file = (struct test_fs_file *)_file;
 
+       fs_file_free(_file);
        buffer_free(&file->contents);
        i_free(file->file.path);
        i_free(file);
index b6808f3c5e18f548f0bcfe2990f6100e6fa2187f..b398e467a92e46500f72204c998a093a9dfb661c 100644 (file)
@@ -145,7 +145,7 @@ static void fs_compress_file_deinit(struct fs_file *_file)
 
        if (file->super_read != _file->parent)
                fs_file_deinit(&file->super_read);
-       fs_file_deinit(&_file->parent);
+       fs_file_free(_file);
        i_free(file->file.path);
        i_free(file);
 }
index 3fdf95908a4f16051d66eddfeece5f1481542ce9..0a56bf15f501cf5cafdf224995dfccabc85d4672 100644 (file)
@@ -170,7 +170,7 @@ static void fs_crypt_file_deinit(struct fs_file *_file)
 
        if (file->super_read != _file->parent)
                fs_file_deinit(&file->super_read);
-       fs_file_deinit(&_file->parent);
+       fs_file_free(_file);
        i_free(file->file.path);
        i_free(file);
 }