iIntroduce S_READ/B_READ/B_RDWR - 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 873f8140b3c1861e5baa5c2dd93f83dfb1d1bc2a /scm/dedup/commit/873f8140b3c1861e5baa5c2dd93f83dfb1d1bc2a.gph bitreich.org 70 1parent 119f4b9531960ed842f475fe4b3e91444ce92b59 /scm/dedup/commit/119f4b9531960ed842f475fe4b3e91444ce92b59.gph bitreich.org 70 hAuthor: sin URL:mailto:sin@2f30.org bitreich.org 70 iDate: Fri, 26 Apr 2019 14:50:26 +0100 Err bitreich.org 70 i Err bitreich.org 70 iIntroduce S_READ/B_READ/B_RDWR Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M block.h | 5 +++++ Err bitreich.org 70 i M bstorage.c | 11 +++++++++++ Err bitreich.org 70 i M dup-check.c | 5 ++--- Err bitreich.org 70 i M dup-gc.c | 3 +-- Err bitreich.org 70 i M dup-init.c | 1 - Err bitreich.org 70 i M dup-pack.c | 3 +-- Err bitreich.org 70 i M dup-rm.c | 5 ++--- Err bitreich.org 70 i M dup-unpack.c | 5 ++--- Err bitreich.org 70 i M snap.c | 4 ++-- Err bitreich.org 70 i M snap.h | 4 ++++ Err bitreich.org 70 i Err bitreich.org 70 i10 files changed, 30 insertions(+), 16 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/block.h b/block.h /scm/dedup/file/block.h.gph bitreich.org 70 i@@ -1,3 +1,8 @@ Err bitreich.org 70 i+enum { Err bitreich.org 70 i+ B_READ = 1 << 0, Err bitreich.org 70 i+ B_RDWR = 1 << 1, Err bitreich.org 70 i+}; Err bitreich.org 70 i+ Err bitreich.org 70 i struct bctx { Err bitreich.org 70 i void *gctx; /* generic layer context (unused) */ Err bitreich.org 70 i void *cctx; /* compression layer context */ Err bitreich.org 70 1diff --git a/bstorage.c b/bstorage.c /scm/dedup/file/bstorage.c.gph bitreich.org 70 i@@ -379,6 +379,17 @@ bsopen(struct bctx *bctx, char *path, int flags, int mode, struct bparam *bpar) Err bitreich.org 70 i struct bhdr *bhdr; Err bitreich.org 70 i int fd, calgo, halgo; Err bitreich.org 70 i Err bitreich.org 70 i+ switch (flags) { Err bitreich.org 70 i+ case B_READ: Err bitreich.org 70 i+ flags = O_RDONLY; Err bitreich.org 70 i+ break; Err bitreich.org 70 i+ case B_RDWR: Err bitreich.org 70 i+ flags = O_RDWR; Err bitreich.org 70 i+ break; Err bitreich.org 70 i+ default: Err bitreich.org 70 i+ return -1; Err bitreich.org 70 i+ } 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 1diff --git a/dup-check.c b/dup-check.c /scm/dedup/file/dup-check.c.gph bitreich.org 70 i@@ -2,7 +2,6 @@ Err bitreich.org 70 i #include Err bitreich.org 70 i Err bitreich.org 70 i #include Err bitreich.org 70 i-#include Err bitreich.org 70 i #include Err bitreich.org 70 i #include Err bitreich.org 70 i #include Err bitreich.org 70 i@@ -61,11 +60,11 @@ main(int argc, char *argv[]) Err bitreich.org 70 i usage(); Err bitreich.org 70 i Err bitreich.org 70 i snprintf(path, sizeof(path), "%s/archive/%s", repo, argv[0]); Err bitreich.org 70 i- if (sopen(path, O_RDONLY, 0600, &sctx) < 0) Err bitreich.org 70 i+ if (sopen(path, S_READ, 0600, &sctx) < 0) Err bitreich.org 70 i errx(1, "sopen: %s: failed", path); Err bitreich.org 70 i Err bitreich.org 70 i snprintf(path, sizeof(path), "%s/storage", repo); Err bitreich.org 70 i- if (bopen(path, O_RDONLY, 0600, &bparam, &bctx) <0) Err bitreich.org 70 i+ if (bopen(path, B_READ, 0600, &bparam, &bctx) <0) Err bitreich.org 70 i errx(1, "bopen: %s: failed", path); Err bitreich.org 70 i Err bitreich.org 70 i if (check(sctx, bctx) < 0) Err bitreich.org 70 1diff --git a/dup-gc.c b/dup-gc.c /scm/dedup/file/dup-gc.c.gph bitreich.org 70 i@@ -2,7 +2,6 @@ Err bitreich.org 70 i #include Err bitreich.org 70 i Err bitreich.org 70 i #include Err bitreich.org 70 i-#include Err bitreich.org 70 i #include Err bitreich.org 70 i #include Err bitreich.org 70 i #include Err bitreich.org 70 i@@ -51,7 +50,7 @@ main(int argc, char *argv[]) Err bitreich.org 70 i if (chdir(repo) < 0) Err bitreich.org 70 i err(1, "chdir: %s", repo); Err bitreich.org 70 i Err bitreich.org 70 i- if (bopen(STORAGEPATH, O_RDWR, 0600, &bpar, &bctx) < 0) Err bitreich.org 70 i+ if (bopen(STORAGEPATH, B_RDWR, 0600, &bpar, &bctx) < 0) Err bitreich.org 70 i errx(1, "bopen: failed"); Err bitreich.org 70 i if (bgc(bctx) < 0) Err bitreich.org 70 i errx(1, "bgc: failed"); Err bitreich.org 70 1diff --git a/dup-init.c b/dup-init.c /scm/dedup/file/dup-init.c.gph bitreich.org 70 i@@ -2,7 +2,6 @@ Err bitreich.org 70 i #include Err bitreich.org 70 i Err bitreich.org 70 i #include Err bitreich.org 70 i-#include Err bitreich.org 70 i #include Err bitreich.org 70 i #include Err bitreich.org 70 i #include Err bitreich.org 70 1diff --git a/dup-pack.c b/dup-pack.c /scm/dedup/file/dup-pack.c.gph bitreich.org 70 i@@ -2,7 +2,6 @@ Err bitreich.org 70 i #include Err bitreich.org 70 i Err bitreich.org 70 i #include Err bitreich.org 70 i-#include Err bitreich.org 70 i #include Err bitreich.org 70 i #include Err bitreich.org 70 i #include Err bitreich.org 70 i@@ -83,7 +82,7 @@ main(int argc, char *argv[]) Err bitreich.org 70 i errx(1, "screat: %s: failed", path); Err bitreich.org 70 i Err bitreich.org 70 i snprintf(path, sizeof(path), "%s/storage", repo); Err bitreich.org 70 i- if (bopen(path, O_RDWR, 0600, &bpar, &bctx) <0) Err bitreich.org 70 i+ if (bopen(path, B_RDWR, 0600, &bpar, &bctx) <0) Err bitreich.org 70 i errx(1, "bopen: %s: failed", path); Err bitreich.org 70 i Err bitreich.org 70 i if (pack(sctx, bctx) < 0) Err bitreich.org 70 1diff --git a/dup-rm.c b/dup-rm.c /scm/dedup/file/dup-rm.c.gph bitreich.org 70 i@@ -2,7 +2,6 @@ Err bitreich.org 70 i #include Err bitreich.org 70 i Err bitreich.org 70 i #include Err bitreich.org 70 i-#include Err bitreich.org 70 i #include Err bitreich.org 70 i #include Err bitreich.org 70 i #include Err bitreich.org 70 i@@ -63,11 +62,11 @@ main(int argc, char *argv[]) Err bitreich.org 70 i usage(); Err bitreich.org 70 i Err bitreich.org 70 i snprintf(spath, sizeof(spath), "%s/archive/%s", repo, argv[0]); Err bitreich.org 70 i- if (sopen(spath, O_RDONLY, 0600, &sctx) < 0) Err bitreich.org 70 i+ if (sopen(spath, S_READ, 0600, &sctx) < 0) Err bitreich.org 70 i errx(1, "sopen: %s: failed", spath); Err bitreich.org 70 i Err bitreich.org 70 i snprintf(bpath, sizeof(bpath), "%s/storage", repo); Err bitreich.org 70 i- if (bopen(bpath, O_RDWR, 0600, &bparam, &bctx) <0) Err bitreich.org 70 i+ if (bopen(bpath, B_RDWR, 0600, &bparam, &bctx) <0) Err bitreich.org 70 i errx(1, "bopen: %s: failed", bpath); Err bitreich.org 70 i Err bitreich.org 70 i if (rm(sctx, bctx) < 0) Err bitreich.org 70 1diff --git a/dup-unpack.c b/dup-unpack.c /scm/dedup/file/dup-unpack.c.gph bitreich.org 70 i@@ -2,7 +2,6 @@ Err bitreich.org 70 i #include Err bitreich.org 70 i Err bitreich.org 70 i #include Err bitreich.org 70 i-#include Err bitreich.org 70 i #include Err bitreich.org 70 i #include Err bitreich.org 70 i #include Err bitreich.org 70 i@@ -95,11 +94,11 @@ main(int argc, char *argv[]) Err bitreich.org 70 i usage(); Err bitreich.org 70 i Err bitreich.org 70 i snprintf(path, sizeof(path), "%s/archive/%s", repo, argv[0]); Err bitreich.org 70 i- if (sopen(path, O_RDONLY, 0600, &sctx) < 0) Err bitreich.org 70 i+ if (sopen(path, S_READ, 0600, &sctx) < 0) Err bitreich.org 70 i errx(1, "sopen: %s: failed", path); Err bitreich.org 70 i Err bitreich.org 70 i snprintf(path, sizeof(path), "%s/storage", repo); Err bitreich.org 70 i- if (bopen(path, O_RDONLY, 0600, &bpar, &bctx) <0) Err bitreich.org 70 i+ if (bopen(path, B_READ, 0600, &bpar, &bctx) <0) Err bitreich.org 70 i errx(1, "bopen: %s: failed", path); Err bitreich.org 70 i Err bitreich.org 70 i if (unpack(sctx, bctx) < 0) Err bitreich.org 70 1diff --git a/snap.c b/snap.c /scm/dedup/file/snap.c.gph bitreich.org 70 i@@ -141,10 +141,10 @@ sopen(char *path, int flags, int mode, struct sctx **sctx) 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+ if (flags != S_READ) 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+ fd = open(path, O_RDONLY, mode); Err bitreich.org 70 i if (fd < 0) Err bitreich.org 70 i return -1; Err bitreich.org 70 i Err bitreich.org 70 1diff --git a/snap.h b/snap.h /scm/dedup/file/snap.h.gph bitreich.org 70 i@@ -1,3 +1,7 @@ Err bitreich.org 70 i+enum { Err bitreich.org 70 i+ S_READ = 1 << 0, Err bitreich.org 70 i+}; Err bitreich.org 70 i+ Err bitreich.org 70 i struct sctx; Err bitreich.org 70 i Err bitreich.org 70 i extern int screat(char *path, int mode, struct sctx **sctx); Err bitreich.org 70 .