L4Re/departure

Changeset

549:5b8ea85e7668
2023-03-26 Paul Boddie raw files shortlog changelog graph Propagate errors when failing to detach dataspaces.
libfsclient/lib/src/file.cc (file)
     1.1 --- a/libfsclient/lib/src/file.cc	Sun Mar 26 01:52:16 2023 +0100
     1.2 +++ b/libfsclient/lib/src/file.cc	Sun Mar 26 17:54:27 2023 +0200
     1.3 @@ -367,13 +367,18 @@
     1.4                 offset_t start_visible, offset_t end_visible,
     1.5                 l4re_rm_flags_t region_flags)
     1.6  {
     1.7 +  long err;
     1.8 +
     1.9    if (file->memory != NULL)
    1.10    {
    1.11 -    ipc_detach_dataspace(file->memory);
    1.12 +    err = ipc_detach_dataspace(file->memory);
    1.13 +    if (err)
    1.14 +      return err;
    1.15 +
    1.16      file->memory = NULL;
    1.17    }
    1.18  
    1.19 -  long err = file_mmap_only(file, position, length, start_visible, end_visible);
    1.20 +  err = file_mmap_only(file, position, length, start_visible, end_visible);
    1.21  
    1.22    if (err)
    1.23      return err;
    1.24 @@ -756,7 +761,10 @@
    1.25      return err;
    1.26  
    1.27    if (pipe->memory != NULL)
    1.28 -    ipc_detach_dataspace(pipe->memory);
    1.29 +    err = ipc_detach_dataspace(pipe->memory);
    1.30 +
    1.31 +  if (err)
    1.32 +    return err;
    1.33  
    1.34    pipe->end_pos = pipe->size;
    1.35    pipe->memory = NULL;