From: Timo Sirainen Date: Fri, 29 Nov 2019 13:30:46 +0000 (+0200) Subject: lib-fs: Set internal fs/file/iter pointers to events X-Git-Tag: 2.3.10~209 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f6e8341f9fb2e8a7b3b9d36454e7ee02992227c8;p=thirdparty%2Fdovecot%2Fcore.git lib-fs: Set internal fs/file/iter pointers to events This will be used by the following commit --- diff --git a/src/lib-fs/fs-api-private.h b/src/lib-fs/fs-api-private.h index 2881856198..85294646d6 100644 --- a/src/lib-fs/fs-api-private.h +++ b/src/lib-fs/fs-api-private.h @@ -7,6 +7,10 @@ #include +#define FS_EVENT_FIELD_FS "lib-fs#fs" +#define FS_EVENT_FIELD_FILE "lib-fs#file" +#define FS_EVENT_FIELD_ITER "lib-fs#iter" + struct fs_api_module_register { unsigned int id; }; diff --git a/src/lib-fs/fs-api.c b/src/lib-fs/fs-api.c index a9a1dd98e4..390e93277c 100644 --- a/src/lib-fs/fs-api.c +++ b/src/lib-fs/fs-api.c @@ -161,6 +161,7 @@ int fs_init(const char *driver, const char *args, if (fs_alloc(fs_class, args, set, fs_r, error_r) < 0) return -1; (*fs_r)->event = fs_create_event(*fs_r, set->event); + event_set_ptr((*fs_r)->event, FS_EVENT_FIELD_FS, *fs_r); temp_file_prefix = set->temp_file_prefix != NULL ? set->temp_file_prefix : ".temp.dovecot"; @@ -271,6 +272,8 @@ struct fs_file *fs_file_init_with_event(struct fs *fs, struct event *event, file->fs = fs; file->flags = mode_flags & ~FS_OPEN_MODE_MASK; file->event = fs_create_event(fs, event); + event_set_ptr(file->event, FS_EVENT_FIELD_FS, fs); + event_set_ptr(file->event, FS_EVENT_FIELD_FILE, file); fs->v.file_init(file, path, mode_flags & FS_OPEN_MODE_MASK, mode_flags & ~FS_OPEN_MODE_MASK); } T_END; @@ -1141,6 +1144,8 @@ fs_iter_init_with_event(struct fs *fs, struct event *event, iter->fs = fs; iter->flags = flags; iter->event = fs_create_event(fs, event); + event_set_ptr(iter->event, FS_EVENT_FIELD_FS, fs); + event_set_ptr(iter->event, FS_EVENT_FIELD_ITER, iter); fs->v.iter_init(iter, path, flags); } T_END; iter->start_time = now;