1.1 --- a/libfsserver/lib/files/file_object_registry.cc Sun Oct 17 22:10:09 2021 +0200
1.2 +++ b/libfsserver/lib/files/file_object_registry.cc Sun Oct 17 22:14:40 2021 +0200
1.3 @@ -62,10 +62,6 @@
1.4 return err;
1.5
1.6 *provider = new DirectoryProvider(fileid, this, accessor);
1.7 -
1.8 - /* Register the provider. */
1.9 -
1.10 - set(fileid, *provider);
1.11 return L4_EOK;
1.12 }
1.13
1.14 @@ -86,10 +82,6 @@
1.15
1.16 PageMapper *mapper = new PageMapper(accessor, _pages);
1.17 *provider = new FileProvider(fileid, get_flags(flags), this, mapper);
1.18 -
1.19 - /* Register the provider. */
1.20 -
1.21 - set(fileid, *provider);
1.22 return L4_EOK;
1.23 }
1.24
1.25 @@ -100,12 +92,20 @@
1.26 fileid_t fileid,
1.27 Provider **provider)
1.28 {
1.29 + long err = -L4_EIO;
1.30 +
1.31 if (opening->accessing_directory(path, flags, fileid))
1.32 - return make_directory_provider(opening, path, flags, fileid, provider);
1.33 + err = make_directory_provider(opening, path, flags, fileid, provider);
1.34 else if (opening->accessing_file(path, flags, fileid))
1.35 - return make_file_provider(opening, path, flags, fileid, provider);
1.36 - else
1.37 - return -L4_EIO;
1.38 + err = make_file_provider(opening, path, flags, fileid, provider);
1.39 +
1.40 + if (err)
1.41 + return err;
1.42 +
1.43 + /* Register the provider. */
1.44 +
1.45 + set(fileid, *provider);
1.46 + return L4_EOK;
1.47 }
1.48
1.49