Mercurial > dovecot > core-2.2
changeset 20878:4c1924b74356
lib-fs: Optimize changing FS_METADATA_INTERNAL_PREFIX metadata.
file->metadata_changed doesn't need to change in that situation. It's used
by fs-metawrap to find out if it needs to rewrite metadata during a write,
but internal metadata isn't written to its header.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Tue, 11 Oct 2016 00:46:59 +0300 |
parents | 20b4ec6e8e6d |
children | c9e32ef49048 |
files | src/lib-fs/fs-api.c |
diffstat | 1 files changed, 6 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-fs/fs-api.c Mon Oct 17 12:41:33 2016 +0300 +++ b/src/lib-fs/fs-api.c Tue Oct 11 00:46:59 2016 +0300 @@ -330,7 +330,12 @@ if (file->fs->v.set_metadata != NULL) T_BEGIN { file->fs->v.set_metadata(file, key, value); - file->metadata_changed = TRUE; + if (strncmp(key, FS_METADATA_INTERNAL_PREFIX, + strlen(FS_METADATA_INTERNAL_PREFIX)) == 0) { + /* internal metadata change, which isn't stored. */ + } else { + file->metadata_changed = TRUE; + } } T_END; }