sapling/eden/fs
Adam Simpkins 2369f6f810 address some issues with materializing inodes
Summary:
This changes a couple aspects of the materialization process:

- Write out child files in the overlay before their parent.  If we throw an
  exception or crash partway through this process, it is better to have the
  child not marked materialized in its parent, rather than to have the parent
  indicate that the child is materialized but to not actually have any overlay
  data for the child.  In the former case we will still load the correct child
  data the next time we need to, but in the latter case we would fail to load
  the child correctly.

- Hold the rename lock while materializing our parent directories, to ensure
  that we materialize the correct parent, and it cannot change while we are
  trying to perform the materialization.

- Make the parent responsible for modifying the child's TreeInode::Entry.  This
  data is owned by the parent and is protected by the parent's contents_ lock.
  The child really shouldn't ever be directly accessing this data without
  holding the parent's contents_ lock.

Reviewed By: bolinfest

Differential Revision: D4688057

fbshipit-source-id: 2662f79cb7d7febb086f4e0888a3d96a580c4bfa
2017-03-10 18:29:29 -08:00
..
cli update "eden daemon" to also pass through KRB5CCNAME 2017-02-22 18:37:42 -08:00
config fix warnings triggered with -Wshadow-compatible-local 2017-03-02 13:32:51 -08:00
inodes address some issues with materializing inodes 2017-03-10 18:29:29 -08:00
journal update all copyright statements to "2016-present" 2017-01-20 22:03:02 -08:00
model get the open source build working 2017-03-06 20:28:48 -08:00
rocksdb update all copyright statements to "2016-present" 2017-01-20 22:03:02 -08:00
service use gflags namespace instead of google 2017-03-08 22:14:27 -08:00
store fix warnings triggered with -Wshadow-compatible-local 2017-03-02 13:32:51 -08:00
testharness update unlink() to load the child inode before removing it 2017-03-08 17:09:36 -08:00