Deal with stale mappings for deleted file in direct mode.
The most common way for a mapping to be stale is when a file was deleted, or renamed. Nothing updates the mappings for deletions yet. But they can also become stale in other ways. For example a file can be modified. So, the mapping is not trusted to be consistent. When we get a key, only replace symlinks that still point to that key with its content. When we drop a key, only put back symlinks for files that still have the direct mode content.
This commit is contained in:
parent
9174d4449a
commit
af3a25ee03
3 changed files with 22 additions and 4 deletions
|
@ -87,6 +87,12 @@ is converted to a real file when it becomes present.
|
|||
* kqueue does not deliver an event when an existing file is modified.
|
||||
This doesn't affect OSX, which uses FSEvents now, but it makes direct
|
||||
mode assistant not 100% on other BSD's.
|
||||
* The mapping is not updated when files are deleted (or for the deletion
|
||||
part of a rename). So it can contain old filenames that are no longer in
|
||||
use. Code that uses the mapping has to take care to check that the
|
||||
files they refer to exists, which is a good idea anyway. But,
|
||||
it would be good to at some point update the mappings to remove deleted
|
||||
files (fsck does this FWIW).
|
||||
|
||||
## done
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue