SMOLNET PORTAL home about changes
iSwitch from singly linked list to a tail queue - 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 507fc4bcf4bbfe7d0fefa6c8cdd699322715da61	/scm/dedup/commit/507fc4bcf4bbfe7d0fefa6c8cdd699322715da61.gph	bitreich.org	70
1parent a7753b65b2b40ba265e30e8f2f0bda25da7baa53	/scm/dedup/commit/a7753b65b2b40ba265e30e8f2f0bda25da7baa53.gph	bitreich.org	70
hAuthor: sin <sin@2f30.org>	URL:mailto:sin@2f30.org	bitreich.org	70
iDate:   Tue,  7 May 2019 16:57:40 +0100	Err	bitreich.org	70
i	Err	bitreich.org	70
iSwitch from singly linked list to a tail queue	Err	bitreich.org	70
i	Err	bitreich.org	70
iThis is needed to guarantee correct order of traversal for upcoming	Err	bitreich.org	70
istreaming encryption/authentication support.	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M snap.c                              |      30 +++++++++++++++---------------	Err	bitreich.org	70
i	Err	bitreich.org	70
i1 file changed, 15 insertions(+), 15 deletions(-)	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@@ -21,11 +21,11 @@	Err	bitreich.org	70
i 	Err	bitreich.org	70
i struct mdnode {	Err	bitreich.org	70
i         unsigned char md[MDSIZE];        /* hash of block */	Err	bitreich.org	70
i-        SLIST_ENTRY(mdnode) e;                /* mdhead link node */	Err	bitreich.org	70
i+        TAILQ_ENTRY(mdnode) e;                /* mdhead link node */	Err	bitreich.org	70
i };	Err	bitreich.org	70
i 	Err	bitreich.org	70
i struct sctx {	Err	bitreich.org	70
i-        SLIST_HEAD(mdhead, mdnode) mdhead;        /* list of hashes contained in snapshot */	Err	bitreich.org	70
i+        TAILQ_HEAD(mdhead, mdnode) mdhead;        /* list of hashes contained in snapshot */	Err	bitreich.org	70
i         struct mdnode *mdnext;        /* next hash to be returned via sget() */	Err	bitreich.org	70
i         int fd;                /* underlying snapshot file descriptor */	Err	bitreich.org	70
i         int rdonly;        /* when set to 1, the ssync() operation is a no-op */	Err	bitreich.org	70
i@@ -48,7 +48,7 @@ loadmd(struct sctx *sctx)	Err	bitreich.org	70
i                 sseterr("failed to read block hash: %s", strerror(errno));	Err	bitreich.org	70
i                 return -1;	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i-        SLIST_INSERT_HEAD(&sctx->mdhead, mdnode, e);	Err	bitreich.org	70
i+        TAILQ_INSERT_TAIL(&sctx->mdhead, mdnode, e);	Err	bitreich.org	70
i         return 0;	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i@@ -68,11 +68,11 @@ initmdhead(struct sctx *sctx)	Err	bitreich.org	70
i                         continue;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i                 /* Cleanup */	Err	bitreich.org	70
i-                while (!SLIST_EMPTY(&sctx->mdhead)) {	Err	bitreich.org	70
i+                while (!TAILQ_EMPTY(&sctx->mdhead)) {	Err	bitreich.org	70
i                         struct mdnode *mdnode;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-                        mdnode = SLIST_FIRST(&sctx->mdhead);	Err	bitreich.org	70
i-                        SLIST_REMOVE(&sctx->mdhead, mdnode, mdnode, e);	Err	bitreich.org	70
i+                        mdnode = TAILQ_FIRST(&sctx->mdhead);	Err	bitreich.org	70
i+                        TAILQ_REMOVE(&sctx->mdhead, mdnode, e);	Err	bitreich.org	70
i                         free(mdnode);	Err	bitreich.org	70
i                 }	Err	bitreich.org	70
i                 return -1;	Err	bitreich.org	70
i@@ -103,7 +103,7 @@ screat(char *path, int mode, struct sctx **sctx)	Err	bitreich.org	70
i                 return -1;	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        SLIST_INIT(&(*sctx)->mdhead);	Err	bitreich.org	70
i+        TAILQ_INIT(&(*sctx)->mdhead);	Err	bitreich.org	70
i         (*sctx)->mdnext = NULL;	Err	bitreich.org	70
i         (*sctx)->fd = fd;	Err	bitreich.org	70
i         return 0;	Err	bitreich.org	70
i@@ -138,7 +138,7 @@ 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 	Err	bitreich.org	70
i-        SLIST_INIT(&(*sctx)->mdhead);	Err	bitreich.org	70
i+        TAILQ_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 = 1;	Err	bitreich.org	70
i@@ -167,7 +167,7 @@ sput(struct sctx *sctx, unsigned char *md)	Err	bitreich.org	70
i                 return -1;	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i         memcpy(mdnode->md, md, MDSIZE);	Err	bitreich.org	70
i-        SLIST_INSERT_HEAD(&sctx->mdhead, mdnode, e);	Err	bitreich.org	70
i+        TAILQ_INSERT_TAIL(&sctx->mdhead, mdnode, e);	Err	bitreich.org	70
i         return 0;	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i@@ -183,9 +183,9 @@ sget(struct sctx *sctx, unsigned char *md)	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         mdnode = sctx->mdnext;	Err	bitreich.org	70
i         if (mdnode == NULL)	Err	bitreich.org	70
i-                mdnode = SLIST_FIRST(&sctx->mdhead);	Err	bitreich.org	70
i+                mdnode = TAILQ_FIRST(&sctx->mdhead);	Err	bitreich.org	70
i         else	Err	bitreich.org	70
i-                mdnode = SLIST_NEXT(mdnode, e);	Err	bitreich.org	70
i+                mdnode = TAILQ_NEXT(mdnode, e);	Err	bitreich.org	70
i         sctx->mdnext = mdnode;	Err	bitreich.org	70
i         if (mdnode != NULL) {	Err	bitreich.org	70
i                 memcpy(md, mdnode->md, MDSIZE);	Err	bitreich.org	70
i@@ -222,7 +222,7 @@ ssync(struct sctx *sctx)	Err	bitreich.org	70
i                 sseterr("lseek: %s", strerror(errno));	Err	bitreich.org	70
i                 return -1;	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i-        SLIST_FOREACH(mdnode, &sctx->mdhead, e) {	Err	bitreich.org	70
i+        TAILQ_FOREACH(mdnode, &sctx->mdhead, e) {	Err	bitreich.org	70
i                 if (xwrite(sctx->fd, mdnode->md, MDSIZE) != MDSIZE) {	Err	bitreich.org	70
i                         sseterr("failed to write block hash: %s",	Err	bitreich.org	70
i                                 strerror(errno));	Err	bitreich.org	70
i@@ -245,11 +245,11 @@ sclose(struct sctx *sctx)	Err	bitreich.org	70
i                 return -1;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         /* Cleanup */	Err	bitreich.org	70
i-        while (!SLIST_EMPTY(&sctx->mdhead)) {	Err	bitreich.org	70
i+        while (!TAILQ_EMPTY(&sctx->mdhead)) {	Err	bitreich.org	70
i                 struct mdnode *mdnode;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-                mdnode = SLIST_FIRST(&sctx->mdhead);	Err	bitreich.org	70
i-                SLIST_REMOVE(&sctx->mdhead, mdnode, mdnode, e);	Err	bitreich.org	70
i+                mdnode = TAILQ_FIRST(&sctx->mdhead);	Err	bitreich.org	70
i+                TAILQ_REMOVE(&sctx->mdhead, mdnode, e);	Err	bitreich.org	70
i                 free(mdnode);	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i 	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/dedup/commit/507fc4bcf4bbfe7d...
Content-Typetext/plain; charset=utf-8