[roll] Roll fuchsia [kernel][vm] Re-design clone flags

Changes the flag to CreateCloneLocked to be the kind of snapshot
semantics that must be provided, instead of directly requesting a clone
type. This allows for better logic inside CreateCloneLocked where
instead of 'upgrading' the clone type, it can just pick a clone type
that matches the request.

The logic of picking the clone type is refactored to be in terms of
finding the intersection of what kinds of clones are possible given
the properties of the current VMO, and what semantics need to be
provided.

A consequence of this change is that it is now difficult to enforce a
previous check that prevented SNAPSHOT_MODIFIED on a root with pinned
pages, even though a SNAPSHOT_AT_LEAST_ON_WRITE would be permitted. The
previous check was, however, a byproduct of the previous code structure
and does not need to be enforced.

Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1196435
Original-Revision: 1dab957bb1775a7e1904bb9012c59c71d19b49d7
GitOrigin-RevId: 917f9bf402d4d13bfe18de57edce34417af69f91
Change-Id: I7b62d6e28547d5885dee208a61049ccd898d19ac
1 file changed
tree: 497ffd0802a502df45308b25bd19a3085fad9a26
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. cts
  6. firmware
  7. flower
  8. jiri.lock
  9. MILESTONE
  10. minimal
  11. prebuilts
  12. README.md
  13. stem
  14. test_durations
  15. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance in one of the communication channels documented at get involved.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.