[roll] Roll fuchsia [fxfs] Simplify checking of directory children

Prior to this change, fsck followed different paths depending on the
order in which objects were encountered.  This change makes it so that
directory children are processed in a second pass (the same pass that we
currently scan extents in), and allows for a few simplifications.

This CL also includes some other changes:

 * Directory::update_attributes now preserves the operation which
   is required to ensure object counts are correctly updated.  It has
   also been simplified.
 * Directory::insert_child will now update the sub_dirs field when
   inserting a directory.
 * The algorithm for checking link cycles has been changed so that it
   now catches the case where two directories refer to each other as
   children.  This change in algorithm means we no longer need to record
   all the children of directories (which should reduce memory usage).

Original-Fixed: 124705
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/829136
Original-Revision: 02d6273e3a214c19168087a278d5afa62586146f
GitOrigin-RevId: a2587b81187173254922c2654b83d0a95e9f46d4
Change-Id: I80d8d25dcc8165da7a80a5f40874b544154f4f63
1 file changed
tree: 021a529fbf114f5dcab22a9c238ccf117dd0ea92
  1. git-hooks/
  2. infra/
  3. third_party/
  4. cts
  5. firmware
  6. flower
  7. jiri.lock
  8. MILESTONE
  9. minimal
  10. prebuilts
  11. README.md
  12. stem
  13. test_durations
  14. 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.