1.1 --- a/libfsclient/lib/src/file.cc Tue Jun 07 01:14:05 2022 +0200
1.2 +++ b/libfsclient/lib/src/file.cc Tue Jun 07 18:00:28 2022 +0200
1.3 @@ -356,15 +356,11 @@
1.4 l4re_rm_flags_t region_flags)
1.5 {
1.6 char *memory = file->memory;
1.7 - client_MappedFile mapped_file(file->ref);
1.8 - long err = mapped_file.mmap(position, length, start_visible, end_visible,
1.9 - &file->start_pos, &file->end_pos, &file->size);
1.10 + long err = file_mmap_only(file, position, length, start_visible, end_visible);
1.11
1.12 if (err)
1.13 return err;
1.14
1.15 - _update_extent(file);
1.16 -
1.17 err = ipc_attach_dataspace_align(file->ref, file_span(file),
1.18 L4RE_RM_F_SEARCH_ADDR | region_flags,
1.19 L4_PAGESHIFT,
1.20 @@ -378,6 +374,24 @@
1.21 return L4_EOK;
1.22 }
1.23
1.24 +/* Request access to a region of the given file, obtaining an updated file size
1.25 + and populated data details. The region is not mapped, however. */
1.26 +
1.27 +long file_mmap_only(file_t *file, offset_t position, offset_t length,
1.28 + offset_t start_visible, offset_t end_visible)
1.29 +{
1.30 + client_MappedFile mapped_file(file->ref);
1.31 + long err = mapped_file.mmap(position, length, start_visible, end_visible,
1.32 + &file->start_pos, &file->end_pos, &file->size);
1.33 +
1.34 + if (err)
1.35 + return err;
1.36 +
1.37 + _update_extent(file);
1.38 +
1.39 + return L4_EOK;
1.40 +}
1.41 +
1.42 /* Return opening flags compatible with the given region flags. */
1.43
1.44 flags_t file_opening_flags(l4re_rm_flags_t rm_flags)