[roll] Roll fuchsia [fxfs] add overwrite extent value type

To implement fallocate, we need to introduce a new extent value type
which represents a preallocated disk region that will be written to
multiple times. These extents don't store checksums, instead relying
purely on the journal checksum records emitted as part of writing. For
now, only the format changes are added.

They store a block bitmap which tracks which blocks have been written to
at least once, because before blocks are written to they are sparse,
logically zeros.

An advisory flag in the object attributes is also added to indicate if
this file has any overwrite extents. This will help optimize open and
write, so that in the vastly more common case of having no overwrite
extents, we can skip expensive checks.

This also flattens the checksums into a Mode type which stores the write
mode the extent is in. Extents that used to have Checksums::None now
have ExtentMode::Raw.

Original-Bug: b/293943124
Test: fx test fxfs-test
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/987914
Original-Revision: 0322de47568c66b755461e93d7719cf6db337e7f
GitOrigin-RevId: a8e1e1c17aa0399b51def1d31bc5974b06757480
Change-Id: I3a31590b3ffe4fff012e1337e9d553baead25720
1 file changed
tree: 2844154b6ad747cf22af10e80cb30451ef2bf46b
  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 via the IRC channel #fuchsia on Freenode.

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.