From: Timo Sirainen Date: Wed, 31 Oct 2018 15:19:42 +0000 (+0200) Subject: lib-fs: If fs_get_metadata() isn't implemented, return internal metadata anyway X-Git-Tag: 2.3.5~42 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3bef9e55e81d888ac7090075cdee7050145dab9e;p=thirdparty%2Fdovecot%2Fcore.git lib-fs: If fs_get_metadata() isn't implemented, return internal metadata anyway The metadata is sometimes used for transferring internal metadata within the files. This metadata isn't stored to disk. So even if the fs driver doesn't support metadata at all, it should still be possible to get/set the internal metadata. Setting it was already possible, but getting wasn't. --- diff --git a/src/lib-fs/fs-api.c b/src/lib-fs/fs-api.c index 93c9f764ef..5712eda483 100644 --- a/src/lib-fs/fs-api.c +++ b/src/lib-fs/fs-api.c @@ -471,6 +471,11 @@ int fs_get_metadata(struct fs_file *file, int ret; if (file->fs->v.get_metadata == NULL) { + if (array_is_created(&file->metadata)) { + /* Return internal metadata. */ + *metadata_r = &file->metadata; + return 0; + } fs_set_error(file->fs, "Metadata not supported by backend"); return -1; }