1.1 --- a/libfsserver/lib/files/file_paging.cc Mon Sep 27 00:12:18 2021 +0200
1.2 +++ b/libfsserver/lib/files/file_paging.cc Mon Sep 27 01:16:49 2021 +0200
1.3 @@ -46,11 +46,10 @@
1.4
1.5
1.6
1.7 -/* Obtain a provider for the 'fileid' or register a new one. */
1.8 +/* Obtain any active provider for 'fileid'. */
1.9
1.10 -long FilePaging::get_directory_provider(FileOpening *opening, const char *path,
1.11 - flags_t flags, fileid_t fileid,
1.12 - DirectoryProvider **directory_provider)
1.13 +long FilePaging::find_directory_provider(fileid_t fileid,
1.14 + DirectoryProvider **directory_provider)
1.15 {
1.16 /* Obtain any registered provider. */
1.17
1.18 @@ -66,10 +65,24 @@
1.19 return -L4_EIO;
1.20 }
1.21
1.22 + return -L4_ENOENT;
1.23 +}
1.24 +
1.25 +/* Obtain a provider for the 'fileid' or register a new one. */
1.26 +
1.27 +long FilePaging::get_directory_provider(FileOpening *opening, const char *path,
1.28 + flags_t flags, fileid_t fileid,
1.29 + DirectoryProvider **directory_provider)
1.30 +{
1.31 + long err = find_directory_provider(fileid, directory_provider);
1.32 +
1.33 + if (err != -L4_ENOENT)
1.34 + return err;
1.35 +
1.36 /* Make an accessor and a provider to encapsulate it. */
1.37
1.38 DirectoryAccessor *accessor;
1.39 - long err = opening->make_directory_accessor(path, flags, fileid, &accessor);
1.40 + err = opening->make_directory_accessor(path, flags, fileid, &accessor);
1.41
1.42 if (err)
1.43 return err;