[roll] Roll fuchsia [fxfs] Hold OpenedNode<FxFile> during mark_dirty.

If the node is already opened then we take another reference to hold
until after the mark_dirty is complete, otherwise we fail the mark_dirty
request as there should be no legitimate mark_dirty requests if nothing
is open.

This addresses two issues:
 - Where we allow a stream held after the fidl channel close to keep
   modifying bytes that will never be properly cleaned. These mark_dirty
   requests should fail.
 - A race where the caller shuts down during an outstanding mark_dirty
   request, and the channel gets closed reducing the open count to zero
   before the mark dirty request completes again allowing for dirty
   pages that will never be properly cleaned.

Original-Original-Bug: 505825178
Original-Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1621194
Original-Original-Revision: f62faac6b4098942e156abcb288717140bd10ebd
GitOrigin-RevId: 80acbec9d098be084c4c22f22f48e4ebda015e27
Change-Id: I1c955edc66241ef50b1776f2e524aaf8c6cddfc7
Reviewed-on: https://fuchsia-review.googlesource.com/c/integration/+/1621494
Cr-Commit-Position: refs/heads/main@{#193202}
1 file changed
tree: 13c91d3c3f8fda508a1a8fd58c952e54dd9d949f
  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.