diff options
author | 2018-03-01 10:56:31 -0600 | |
---|---|---|
committer | 2018-03-01 10:56:31 -0600 | |
commit | dfc21be28185956f61bd904022312f781cbe1572 (patch) | |
tree | 2fed9ea774115882502ee73937ae45cf99b8daae /ChangeLog.txt | |
parent | d7c31a25e4b02af0c64e6be0b4b0a9ac4ffc9da2 (diff) | |
download | pseudo-dfc21be28185956f61bd904022312f781cbe1572.tar.gz pseudo-dfc21be28185956f61bd904022312f781cbe1572.tar.bz2 pseudo-dfc21be28185956f61bd904022312f781cbe1572.zip |
Don't delete things and not create them.
When OP_CREAT comes in, if there's an existing entry with the
same inode, we nuke that entry because CREAT implies a new file
got that inode, and if there's an existing entry with the same
path, we don't create a link, because there's already something
there.
So if there's a single entry with the same path and inode, it
gets deleted and not recreated. Oops.
Now distinguishing between a single exact match of both path
and inode, and distinct matches by path and by inode.
This addresses a use case where parallel creations could
in theory cause pseudo to mistakenly drop database entries,
potentially. (I could only trigger it by doing this to files
which had existing entries, and then deleting the files outside
of pseudo, though.)
Signed-off-by: seebs <seebs@seebs.net>
Diffstat (limited to 'ChangeLog.txt')
-rw-r--r-- | ChangeLog.txt | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/ChangeLog.txt b/ChangeLog.txt index 169e707..e0783fb 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -1,3 +1,9 @@ +2018-03-01: + * (seebs) If you get a CREAT for an existing file, and it matches + both path and inode, don't delete the entry because the inode + matched and then not create it because the path used to match + before you delete it. + 2018-02-26: * (seebs) implement mkstemps, mkostemp, and mkostemps. Actually, move implementation all to mkostemps, then implement the others |