bool keep_always,
uint64_t offset,
uint64_t size,
- void **ret,
- size_t *ret_size) {
+ void **ret) {
int r;
return -EADDRNOTAVAIL;
}
- return mmap_cache_get(f->mmap, f->cache_fd, type_to_context(type), keep_always, offset, size, &f->last_stat, ret, ret_size);
+ return mmap_cache_get(f->mmap, f->cache_fd, type_to_context(type), keep_always, offset, size, &f->last_stat, ret);
}
static uint64_t minimum_header_size(Object *o) {
int journal_file_move_to_object(JournalFile *f, ObjectType type, uint64_t offset, Object **ret) {
int r;
void *t;
- size_t tsize;
Object *o;
uint64_t s;
"Attempt to move to object located in file header: %" PRIu64,
offset);
- r = journal_file_move_to(f, type, false, offset, sizeof(ObjectHeader), &t, &tsize);
+ r = journal_file_move_to(f, type, false, offset, sizeof(ObjectHeader), &t);
if (r < 0)
return r;
"Attempt to move to object of unexpected type: %" PRIu64,
offset);
- if (s > tsize) {
- r = journal_file_move_to(f, type, false, offset, s, &t, NULL);
- if (r < 0)
- return r;
+ r = journal_file_move_to(f, type, false, offset, s, &t);
+ if (r < 0)
+ return r;
- o = (Object*) t;
- }
+ o = (Object*) t;
r = journal_file_check_object(f, offset, o);
if (r < 0)
if (r < 0)
return r;
- r = journal_file_move_to(f, type, false, p, size, &t, NULL);
+ r = journal_file_move_to(f, type, false, p, size, &t);
if (r < 0)
return r;
OBJECT_DATA_HASH_TABLE,
true,
p, s,
- &t, NULL);
+ &t);
if (r < 0)
return r;
OBJECT_FIELD_HASH_TABLE,
true,
p, s,
- &t, NULL);
+ &t);
if (r < 0)
return r;
goto fail;
}
- r = mmap_cache_get(f->mmap, f->cache_fd, CONTEXT_HEADER, true, 0, PAGE_ALIGN(sizeof(Header)), &f->last_stat, &h, NULL);
+ r = mmap_cache_get(f->mmap, f->cache_fd, CONTEXT_HEADER, true, 0, PAGE_ALIGN(sizeof(Header)), &f->last_stat, &h);
if (r == -EINVAL) {
/* Some file systems (jffs2 or p9fs) don't support mmap() properly (or only read-only
* mmap()), and return EINVAL in that case. Let's propagate that as a more recognizable error
c = (a + b) / 2;
- r = mmap_cache_get(m, f, 0, false, c * sizeof(uint64_t), sizeof(uint64_t), NULL, (void **) &z, NULL);
+ r = mmap_cache_get(m, f, 0, false, c * sizeof(uint64_t), sizeof(uint64_t), NULL, (void **) &z);
if (r < 0)
return r;
bool keep_always,
uint64_t offset,
size_t size,
- void **ret,
- size_t *ret_size) {
+ void **ret) {
Context *c;
c->window->keep_always = c->window->keep_always || keep_always;
*ret = (uint8_t*) c->window->ptr + (offset - c->window->offset);
- if (ret_size)
- *ret_size = c->window->size - (offset - c->window->offset);
return 1;
}
bool keep_always,
uint64_t offset,
size_t size,
- void **ret,
- size_t *ret_size) {
+ void **ret) {
Window *w;
Context *c;
w->keep_always = w->keep_always || keep_always;
*ret = (uint8_t*) w->ptr + (offset - w->offset);
- if (ret_size)
- *ret_size = w->size - (offset - w->offset);
return 1;
}
uint64_t offset,
size_t size,
struct stat *st,
- void **ret,
- size_t *ret_size) {
+ void **ret) {
uint64_t woffset, wsize;
Context *c;
context_attach_window(c, w);
*ret = (uint8_t*) w->ptr + (offset - w->offset);
- if (ret_size)
- *ret_size = w->size - (offset - w->offset);
return 1;
uint64_t offset,
size_t size,
struct stat *st,
- void **ret,
- size_t *ret_size) {
+ void **ret) {
int r;
assert(context < MMAP_CACHE_MAX_CONTEXTS);
/* Check whether the current context is the right one already */
- r = try_context(m, f, context, keep_always, offset, size, ret, ret_size);
+ r = try_context(m, f, context, keep_always, offset, size, ret);
if (r != 0) {
m->n_context_cache_hit++;
return r;
}
/* Search for a matching mmap */
- r = find_mmap(m, f, context, keep_always, offset, size, ret, ret_size);
+ r = find_mmap(m, f, context, keep_always, offset, size, ret);
if (r != 0) {
m->n_window_list_hit++;
return r;
m->n_missed++;
/* Create a new mmap */
- return add_mmap(m, f, context, keep_always, offset, size, st, ret, ret_size);
+ return add_mmap(m, f, context, keep_always, offset, size, st, ret);
}
void mmap_cache_stats_log_debug(MMapCache *m) {
uint64_t offset,
size_t size,
struct stat *st,
- void **ret,
- size_t *ret_size);
+ void **ret);
MMapFileDescriptor * mmap_cache_add_fd(MMapCache *m, int fd, int prot);
void mmap_cache_free_fd(MMapCache *m, MMapFileDescriptor *f);
assert_se(z >= 0);
unlink(pz);
- r = mmap_cache_get(m, fx, 0, false, 1, 2, NULL, &p, NULL);
+ r = mmap_cache_get(m, fx, 0, false, 1, 2, NULL, &p);
assert_se(r >= 0);
- r = mmap_cache_get(m, fx, 0, false, 2, 2, NULL, &q, NULL);
+ r = mmap_cache_get(m, fx, 0, false, 2, 2, NULL, &q);
assert_se(r >= 0);
assert_se((uint8_t*) p + 1 == (uint8_t*) q);
- r = mmap_cache_get(m, fx, 1, false, 3, 2, NULL, &q, NULL);
+ r = mmap_cache_get(m, fx, 1, false, 3, 2, NULL, &q);
assert_se(r >= 0);
assert_se((uint8_t*) p + 2 == (uint8_t*) q);
- r = mmap_cache_get(m, fx, 0, false, 16ULL*1024ULL*1024ULL, 2, NULL, &p, NULL);
+ r = mmap_cache_get(m, fx, 0, false, 16ULL*1024ULL*1024ULL, 2, NULL, &p);
assert_se(r >= 0);
- r = mmap_cache_get(m, fx, 1, false, 16ULL*1024ULL*1024ULL+1, 2, NULL, &q, NULL);
+ r = mmap_cache_get(m, fx, 1, false, 16ULL*1024ULL*1024ULL+1, 2, NULL, &q);
assert_se(r >= 0);
assert_se((uint8_t*) p + 1 == (uint8_t*) q);