[roll] Roll fuchsia [starnix] Use write lock for truncate and fallocate

Refactor Starnix VFS locking to use exclusive write locks for truncate
and fallocate operations, instead of read locks. This aligns better
with Linux behavior and prevents potential data corruption when racing
with writes.

Also updated `append_lock_read` and `append_lock_write` to use the
`AppendLockGuard` and `AppendLockWriteGuard` type aliases in their
return values, and updated `truncate` and `allocate` to use
`AppendLockWriteGuard` since they now require exclusive access.

Added `TruncateWriteAtomicity` test to `read_write_test.cc` to verify
that concurrent write and truncate operations do not result in holes.

Test: fx test read_write_test overlayfs_test
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1575113
Original-Revision: f8af747989eb38a18defba9a7a23e09100687d4d
GitOrigin-RevId: 373a72e25f106f97825ac4e1768cb6e063e704c1
Change-Id: I8edd94d17f75029b1c12113e381da6daefc67e91
1 file changed
tree: f51fa5071bab848c249bb20ae7150d4c090837b4
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. cobalt
  6. flower
  7. jiri.lock
  8. MILESTONE
  9. minimal
  10. prebuilts
  11. README.md
  12. stem
  13. test_durations
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.