#include <gcrypt.h>
#endif
-#include <systemd/sd-id128.h>
+#include "systemd/sd-id128.h"
#include "sparse-endian.h"
#include "journal-def.h"
JournalMetrics metrics;
MMapCache *mmap;
- Hashmap *chain_cache;
+ OrderedHashmap *chain_cache;
-#ifdef HAVE_XZ
+#if defined(HAVE_XZ) || defined(HAVE_LZ4)
void *compress_buffer;
- uint64_t compress_buffer_size;
+ size_t compress_buffer_size;
#endif
#ifdef HAVE_GCRYPT
return type > 0 && type < _OBJECT_TYPE_MAX ? type : 0;
}
-static inline int journal_file_object_keep(JournalFile *f, Object *o, uint64_t offset) {
+static inline int journal_file_object_keep(JournalFile *f, Object *o, uint64_t offset, void **release_cookie) {
unsigned context = type_to_context(o->object.type);
+ uint64_t s = le64toh(o->object.size);
return mmap_cache_get(f->mmap, f->fd, f->prot, context, true,
- offset, o->object.size, &f->last_stat, NULL);
+ offset, s, &f->last_stat, NULL, release_cookie);
}
-static inline int journal_file_object_release(JournalFile *f, Object *o, uint64_t offset) {
- unsigned context = type_to_context(o->object.type);
-
- return mmap_cache_release(f->mmap, f->fd, f->prot, context,
- offset, o->object.size);
+static inline int journal_file_object_release(JournalFile *f, void *release_cookie) {
+ return mmap_cache_release(f->mmap, f->fd, release_cookie);
}