From 909929a90bd56fb4550ac44d8a7d1e07af666f7c Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Wed, 31 Oct 2018 17:19:42 +0200 Subject: [PATCH] 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. --- src/lib-fs/fs-api.c | 5 +++++ 1 file changed, 5 insertions(+) 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; } -- 2.47.3