dovecot-2.2: lib-fs: Added FS_METADATA_OBJECTID macro.

dovecot at dovecot.org dovecot at dovecot.org
Tue Feb 17 18:44:33 UTC 2015


details:   http://hg.dovecot.org/dovecot-2.2/rev/a27eed623099
changeset: 18258:a27eed623099
user:      Timo Sirainen <tss at iki.fi>
date:      Tue Feb 17 20:43:57 2015 +0200
description:
lib-fs: Added FS_METADATA_OBJECTID macro.

diffstat:

 src/lib-fs/fs-api.h      |  7 +++++++
 src/lib-fs/fs-metawrap.c |  4 ++++
 2 files changed, 11 insertions(+), 0 deletions(-)

diffs (31 lines):

diff -r 29bd2bcd56d6 -r a27eed623099 src/lib-fs/fs-api.h
--- a/src/lib-fs/fs-api.h	Tue Feb 17 20:42:59 2015 +0200
+++ b/src/lib-fs/fs-api.h	Tue Feb 17 20:43:57 2015 +0200
@@ -7,6 +7,13 @@
 struct fs_lock;
 struct hash_method;
 
+/* Metadata with this prefix shouldn't actually be sent to storage. */
+#define FS_METADATA_INTERNAL_PREFIX ":/X-Dovecot-fs-api-"
+/* fs_write*() may return a hex-encoded object ID after write is finished.
+   This can be later on used to optimize reads by setting it before reading
+   the file. */
+#define FS_METADATA_OBJECTID FS_METADATA_INTERNAL_PREFIX"ObjectID"
+
 enum fs_properties {
 	FS_PROPERTY_METADATA	= 0x01,
 	FS_PROPERTY_LOCKS	= 0x02,
diff -r 29bd2bcd56d6 -r a27eed623099 src/lib-fs/fs-metawrap.c
--- a/src/lib-fs/fs-metawrap.c	Tue Feb 17 20:42:59 2015 +0200
+++ b/src/lib-fs/fs-metawrap.c	Tue Feb 17 20:43:57 2015 +0200
@@ -286,6 +286,10 @@
 	const struct fs_metadata *metadata;
 
 	array_foreach(&file->file.metadata, metadata) {
+		if (strncmp(metadata->key, FS_METADATA_INTERNAL_PREFIX,
+			    strlen(FS_METADATA_INTERNAL_PREFIX)) == 0)
+			continue;
+
 		str_append_tabescaped(str, metadata->key);
 		str_append_c(str, ':');
 		str_append_tabescaped(str, metadata->value);


More information about the dovecot-cvs mailing list