From: Timo Sirainen Date: Fri, 31 Mar 2017 09:28:56 +0000 (+0300) Subject: lib-fs: Add FS_METADATA_ORIG_PATH X-Git-Tag: 2.2.29.rc1~38 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=738f09fb1323ebfe268432b0cf730241e0054809;p=thirdparty%2Fdovecot%2Fcore.git lib-fs: Add FS_METADATA_ORIG_PATH This allows fs backends to keep track of the original filename and use it for logging purposes and such. --- diff --git a/src/lib-fs/fs-api.c b/src/lib-fs/fs-api.c index d3030edd07..4e74e53769 100644 --- a/src/lib-fs/fs-api.c +++ b/src/lib-fs/fs-api.c @@ -234,6 +234,8 @@ struct fs_file *fs_file_init(struct fs *fs, const char *path, int mode_flags) file->flags = mode_flags & ~FS_OPEN_MODE_MASK; fs->files_open_count++; DLLIST_PREPEND(&fs->files, file); + + fs_set_metadata(file, FS_METADATA_ORIG_PATH, path); return file; } diff --git a/src/lib-fs/fs-api.h b/src/lib-fs/fs-api.h index 4fd3cce780..84f53c149b 100644 --- a/src/lib-fs/fs-api.h +++ b/src/lib-fs/fs-api.h @@ -17,6 +17,10 @@ struct hash_method; This can be useful if you don't know the final filename before writing it (e.g. filename contains the file size). */ #define FS_METADATA_WRITE_FNAME FS_METADATA_INTERNAL_PREFIX"WriteFilename" +/* Original path of the file. The path that's eventually visible to a fs + backend may be something different, e.g. object ID. This allows the backend + to still access the original path. */ +#define FS_METADATA_ORIG_PATH FS_METADATA_INTERNAL_PREFIX"OrigPath" enum fs_properties { FS_PROPERTY_METADATA = 0x01,