changeset 26740:076df2d1f13f

lib-fs: Set internal fs/file/iter pointers to events This will be used by the following commit
author Timo Sirainen <timo.sirainen@open-xchange.com>
date Fri, 29 Nov 2019 15:30:46 +0200
parents 0a65e166052f
children 80f031c559f4
files src/lib-fs/fs-api-private.h src/lib-fs/fs-api.c
diffstat 2 files changed, 9 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-fs/fs-api-private.h	Fri Nov 29 16:08:37 2019 +0200
+++ b/src/lib-fs/fs-api-private.h	Fri Nov 29 15:30:46 2019 +0200
@@ -7,6 +7,10 @@
 
 #include <sys/time.h>
 
+#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;
 };
--- a/src/lib-fs/fs-api.c	Fri Nov 29 16:08:37 2019 +0200
+++ b/src/lib-fs/fs-api.c	Fri Nov 29 15:30:46 2019 +0200
@@ -161,6 +161,7 @@
 	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 @@
 		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 @@
 		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;