iMake snapshots immutable - dedup - deduplicating backup program Err bitreich.org 70 hgit clone git://bitreich.org/dedup/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/dedup/ URL:git://bitreich.org/dedup/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/dedup/ bitreich.org 70 1Log /scm/dedup/log.gph bitreich.org 70 1Files /scm/dedup/files.gph bitreich.org 70 1Refs /scm/dedup/refs.gph bitreich.org 70 1Tags /scm/dedup/tag bitreich.org 70 1README /scm/dedup/file/README.gph bitreich.org 70 1LICENSE /scm/dedup/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit 125379d1fbda72262e86305b35e1236d421c2639 /scm/dedup/commit/125379d1fbda72262e86305b35e1236d421c2639.gph bitreich.org 70 1parent c2ec40d6f142c129320bd5526c3bcd5b2f512f7d /scm/dedup/commit/c2ec40d6f142c129320bd5526c3bcd5b2f512f7d.gph bitreich.org 70 hAuthor: sin URL:mailto:sin@2f30.org bitreich.org 70 iDate: Thu, 25 Apr 2019 19:02:52 +0100 Err bitreich.org 70 i Err bitreich.org 70 iMake snapshots immutable Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M snap.c | 6 +++++- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 5 insertions(+), 1 deletion(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/snap.c b/snap.c /scm/dedup/file/snap.c.gph bitreich.org 70 i@@ -140,6 +140,10 @@ sopen(char *path, int flags, int mode, struct sctx **sctx) Err bitreich.org 70 i if (path == NULL || sctx == NULL) Err bitreich.org 70 i return -1; Err bitreich.org 70 i Err bitreich.org 70 i+ /* Existing snapshots are immutable */ Err bitreich.org 70 i+ if (flags != O_RDONLY) Err bitreich.org 70 i+ return -1; Err bitreich.org 70 i+ Err bitreich.org 70 i fd = open(path, flags, mode); Err bitreich.org 70 i if (fd < 0) Err bitreich.org 70 i return -1; Err bitreich.org 70 i@@ -153,7 +157,7 @@ sopen(char *path, int flags, int mode, struct sctx **sctx) Err bitreich.org 70 i SLIST_INIT(&(*sctx)->mdhead); Err bitreich.org 70 i (*sctx)->mdnext = NULL; Err bitreich.org 70 i (*sctx)->fd = fd; Err bitreich.org 70 i- (*sctx)->rdonly = flags == O_RDONLY; Err bitreich.org 70 i+ (*sctx)->rdonly = 1; Err bitreich.org 70 i Err bitreich.org 70 i if (initmdhead(*sctx) < 0) { Err bitreich.org 70 i free(*sctx); Err bitreich.org 70 .