From: Timo Sirainen Date: Fri, 29 Nov 2019 14:53:47 +0000 (+0200) Subject: lib-fs: Add fs_file_free() to run common deinit code X-Git-Tag: 2.3.10~207 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f449d9eebe75e93a8036da8f0bbf5d9de8097344;p=thirdparty%2Fdovecot%2Fcore.git lib-fs: Add fs_file_free() to run common deinit code --- diff --git a/src/lib-fs/fs-api-private.h b/src/lib-fs/fs-api-private.h index 0b2d4c1660..77ee85fa83 100644 --- a/src/lib-fs/fs-api-private.h +++ b/src/lib-fs/fs-api-private.h @@ -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 */ diff --git a/src/lib-fs/fs-api.c b/src/lib-fs/fs-api.c index 3270857bf3..700c6aacc7 100644 --- a/src/lib-fs/fs-api.c +++ b/src/lib-fs/fs-api.c @@ -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) diff --git a/src/lib-fs/fs-dict.c b/src/lib-fs/fs-dict.c index 556a9c5fb2..1cb635387d 100644 --- a/src/lib-fs/fs-dict.c +++ b/src/lib-fs/fs-dict.c @@ -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); } diff --git a/src/lib-fs/fs-metawrap.c b/src/lib-fs/fs-metawrap.c index 3c8af751f8..37fb9af80c 100644 --- a/src/lib-fs/fs-metawrap.c +++ b/src/lib-fs/fs-metawrap.c @@ -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); } diff --git a/src/lib-fs/fs-posix.c b/src/lib-fs/fs-posix.c index 98974910d6..3c12387bc2 100644 --- a/src/lib-fs/fs-posix.c +++ b/src/lib-fs/fs-posix.c @@ -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); diff --git a/src/lib-fs/fs-randomfail.c b/src/lib-fs/fs-randomfail.c index 2b6b5d335b..6acdd5e08b 100644 --- a/src/lib-fs/fs-randomfail.c +++ b/src/lib-fs/fs-randomfail.c @@ -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); } diff --git a/src/lib-fs/fs-sis-queue.c b/src/lib-fs/fs-sis-queue.c index ae02d59f15..f5f894d8b9 100644 --- a/src/lib-fs/fs-sis-queue.c +++ b/src/lib-fs/fs-sis-queue.c @@ -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); } diff --git a/src/lib-fs/fs-sis.c b/src/lib-fs/fs-sis.c index 6bac863df2..c0979aa8e5 100644 --- a/src/lib-fs/fs-sis.c +++ b/src/lib-fs/fs-sis.c @@ -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); diff --git a/src/lib-fs/fs-test.c b/src/lib-fs/fs-test.c index 7eef5fb0cb..fa753a39da 100644 --- a/src/lib-fs/fs-test.c +++ b/src/lib-fs/fs-test.c @@ -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); diff --git a/src/plugins/fs-compress/fs-compress.c b/src/plugins/fs-compress/fs-compress.c index b6808f3c5e..b398e467a9 100644 --- a/src/plugins/fs-compress/fs-compress.c +++ b/src/plugins/fs-compress/fs-compress.c @@ -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); } diff --git a/src/plugins/mail-crypt/fs-crypt-common.c b/src/plugins/mail-crypt/fs-crypt-common.c index 3fdf95908a..0a56bf15f5 100644 --- a/src/plugins/mail-crypt/fs-crypt-common.c +++ b/src/plugins/mail-crypt/fs-crypt-common.c @@ -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); }