[blobfs] Clean up paged BlobLoader path.

Separates out the result of loading a paged vs unpaged blob. The unpaged
path is unchanged.

The paged path is changed to return the PagerInfo and BlobLayout so the
caller (Blob in this case) can subsequently create the vmo and mapping.
This eliminates the need for the vmo creation callback which
significantly simplifies the structure of thise code.

This eliminates the vmo handle duplication in the new (unused) pager
code path which is the source of bugs.

Moves handling of null blobs out of the BlobLoader and into its caller
(the Blob).

There should be no observable behavior change.

Change-Id: I8d7fb4847307fec9ea79862bb160f020554c5953
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/512862
Commit-Queue: Brett Wilson <brettw@google.com>
Reviewed-by: Martin Lindsay <mlindsay@google.com>
4 files changed
tree: 1db8289e9495e61c301271459aa57202e68708ad
  1. .clang-format
  2. .clang-tidy
  3. .git-blame-ignore-revs
  4. .gitattributes
  5. .gitignore
  6. .gn
  7. .style.yapf
  8. AUTHORS
  9. BUILD.gn
  10. CODE_OF_CONDUCT.md
  11. CONTRIBUTING.md
  12. LICENSE
  13. OWNERS
  14. PATENTS
  15. README.md
  16. boards/
  17. build/
  18. buildtools/
  19. bundles/
  20. docs/
  21. examples/
  22. garnet/
  23. products/
  24. rustfmt.toml
  25. scripts/
  26. sdk/
  27. src/
  28. third_party/
  29. tools/
  30. zircon/
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

Read more about Fuchsia's principles.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.