sapling/eden/fs
Adam Simpkins d1e1e4c621 refactor FileInode to avoid using its parent's TreeInode::Entry
Summary:
Refactor FileInode and FileData so that they no longer store the
TreeInode::Entry that refers to this file.  The TreeInode::Entry is owned by
the parent TreeInode and is not safe to access without holding the TreeInode
contents_ lock, which the FileInode code never did.  Additionally, once a
FileInode is unlocked the TreeInode::Entry is destroyed.  Previously the
FileInode code would retain its pointer to this now invalid data, and could
still dereference it.

In the future I think it might be worth refactoring the FileInode/FileData
split a bit more, but this at least addresses the issues around invalid
accesses to entry_.

Reviewed By: bolinfest

Differential Revision: D4688058

fbshipit-source-id: 17d5d0c4e756afc6e3c4bb279cb1bb5231f3134f
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 refactor FileInode to avoid using its parent's TreeInode::Entry 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 refactor FileInode to avoid using its parent's TreeInode::Entry 2017-03-10 18:29:29 -08:00
store fix warnings triggered with -Wshadow-compatible-local 2017-03-02 13:32:51 -08:00
testharness refactor FileInode to avoid using its parent's TreeInode::Entry 2017-03-10 18:29:29 -08:00