diff --git a/src/lib-sieve/sieve-storage.c b/src/lib-sieve/sieve-storage.c index 43b59b8b37f14afd122af9a16119e144b24c8caa..76dbb9f1020f6bfca46d90db04f773b994b6b98f 100644 --- a/src/lib-sieve/sieve-storage.c +++ b/src/lib-sieve/sieve-storage.c @@ -123,11 +123,13 @@ bool sieve_storage_class_exists(struct sieve_instance *svinst, static struct event * sieve_storage_create_event(struct sieve_instance *svinst, + struct event *event_parent, const struct sieve_storage *storage_class) { struct event *event; - event = event_create(svinst->event); + event = event_create(event_parent == NULL ? + svinst->event : event_parent); event_add_category(event, &event_category_sieve_storage); event_add_str(event, "driver", storage_class->driver_name); event_set_append_log_prefix( @@ -296,8 +298,8 @@ int sieve_storage_alloc(struct sieve_instance *svinst, struct event *event, storage->event = event; event_ref(storage->event); } else { - storage->event = - sieve_storage_create_event(svinst, storage_class); + storage->event = sieve_storage_create_event( + svinst, svinst->event, storage_class); } *storage_r = storage; @@ -326,7 +328,8 @@ sieve_storage_init(struct sieve_instance *svinst, i_assert(storage_class->v.init != NULL); - event = sieve_storage_create_event(svinst, storage_class); + event = sieve_storage_create_event(svinst, svinst->event, + storage_class); if ((flags & SIEVE_STORAGE_FLAG_SYNCHRONIZING) != 0 && !storage_class->allows_synchronization) {