aboutsummaryrefslogtreecommitdiffstats
path: root/ChangeLog.txt
diff options
context:
space:
mode:
authorSeebs <seebs@seebs.net>2018-03-01 10:56:31 -0600
committerSeebs <seebs@seebs.net>2018-03-01 10:56:31 -0600
commitdfc21be28185956f61bd904022312f781cbe1572 (patch)
tree2fed9ea774115882502ee73937ae45cf99b8daae /ChangeLog.txt
parentd7c31a25e4b02af0c64e6be0b4b0a9ac4ffc9da2 (diff)
downloadpseudo-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.txt6
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