[master] 2410591 Minor NOP rearrangement.
Poul-Henning Kamp
phk at FreeBSD.org
Wed Jan 17 17:29:06 UTC 2018
commit 2410591720cdeb17fbaa4810a76fc6935a010e2f
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Wed Jan 17 16:41:06 2018 +0000
Minor NOP rearrangement.
diff --git a/bin/varnishd/common/common_vsmw.c b/bin/varnishd/common/common_vsmw.c
index cf34a8f..8e55aeb 100644
--- a/bin/varnishd/common/common_vsmw.c
+++ b/bin/varnishd/common/common_vsmw.c
@@ -159,6 +159,55 @@ vsmw_mkent(const struct vsmw *vsmw, const char *pfx)
/*--------------------------------------------------------------------*/
+static void
+vsmw_addseg(struct vsmw *vsmw, struct vsmwseg *seg)
+{
+ int fd;
+
+ VTAILQ_INSERT_TAIL(&vsmw->segs, seg, list);
+ fd = openat(vsmw->vdirfd, vsmw->idx, O_APPEND | O_WRONLY);
+ assert(fd >= 0);
+ vsmw_write_index(vsmw, fd, seg);
+ AZ(close(fd));
+}
+
+/*--------------------------------------------------------------------*/
+
+static void
+vsmw_delseg(struct vsmw *vsmw, struct vsmwseg *seg, int fixidx)
+{
+ char *t = NULL;
+ int fd;
+
+ CHECK_OBJ_NOTNULL(vsmw, VSMW_MAGIC);
+ CHECK_OBJ_NOTNULL(seg, VSMWSEG_MAGIC);
+
+ if (!--seg->cluster->refs)
+ VSMW_DestroyCluster(vsmw, &seg->cluster);
+
+ VTAILQ_REMOVE(&vsmw->segs, seg, list);
+ REPLACE(seg->class, NULL);
+ REPLACE(seg->id, NULL);
+ FREE_OBJ(seg);
+
+ if (fixidx) {
+ vsmw_mkent(vsmw, vsmw->idx);
+ REPLACE(t, VSB_data(vsmw->vsb));
+ AN(t);
+ fd = openat(vsmw->vdirfd,
+ t, O_WRONLY|O_CREAT|O_EXCL, vsmw->mode);
+ assert(fd >= 0);
+ vsmw_idx_head(vsmw, fd);
+ VTAILQ_FOREACH(seg, &vsmw->segs, list)
+ vsmw_write_index(vsmw, fd, seg);
+ AZ(close(fd));
+ AZ(renameat(vsmw->vdirfd, t, vsmw->vdirfd, vsmw->idx));
+ REPLACE(t, NULL);
+ }
+}
+
+/*--------------------------------------------------------------------*/
+
struct vsmw_cluster *
VSMW_NewCluster(struct vsmw *vsmw, size_t len, const char *pfx)
{
@@ -225,7 +274,6 @@ VSMW_Allocv(struct vsmw *vsmw, struct vsmw_cluster *vc,
const char *fmt, va_list va)
{
struct vsmwseg *seg;
- int fd;
CHECK_OBJ_NOTNULL(vsmw, VSMW_MAGIC);
(void)vc;
@@ -251,11 +299,7 @@ VSMW_Allocv(struct vsmw *vsmw, struct vsmw_cluster *vc,
assert(vc->next <= vc->len);
seg->ptr = seg->off + (char*)vc->ptr;
- VTAILQ_INSERT_TAIL(&vsmw->segs, seg, list);
- fd = openat(vsmw->vdirfd, vsmw->idx, O_APPEND | O_WRONLY);
- assert(fd >= 0);
- vsmw_write_index(vsmw, fd, seg);
- AZ(close(fd));
+ vsmw_addseg(vsmw, seg);
return (seg->ptr);
}
@@ -274,40 +318,6 @@ VSMW_Allocf(struct vsmw *vsmw, struct vsmw_cluster *vc,
}
/*--------------------------------------------------------------------*/
-static void
-vsmw_delseg(struct vsmw *vsmw, struct vsmwseg *seg, int fixidx)
-{
- char *t = NULL;
- int fd;
-
- CHECK_OBJ_NOTNULL(vsmw, VSMW_MAGIC);
- CHECK_OBJ_NOTNULL(seg, VSMWSEG_MAGIC);
-
- if (!--seg->cluster->refs)
- VSMW_DestroyCluster(vsmw, &seg->cluster);
-
- VTAILQ_REMOVE(&vsmw->segs, seg, list);
- REPLACE(seg->class, NULL);
- REPLACE(seg->id, NULL);
- FREE_OBJ(seg);
-
- if (fixidx) {
- vsmw_mkent(vsmw, vsmw->idx);
- REPLACE(t, VSB_data(vsmw->vsb));
- AN(t);
- fd = openat(vsmw->vdirfd,
- t, O_WRONLY|O_CREAT|O_EXCL, vsmw->mode);
- assert(fd >= 0);
- vsmw_idx_head(vsmw, fd);
- VTAILQ_FOREACH(seg, &vsmw->segs, list)
- vsmw_write_index(vsmw, fd, seg);
- AZ(close(fd));
- AZ(renameat(vsmw->vdirfd, t, vsmw->vdirfd, vsmw->idx));
- REPLACE(t, NULL);
- }
-}
-
-/*--------------------------------------------------------------------*/
void
VSMW_Free(struct vsmw *vsmw, void **pp)
More information about the varnish-commit
mailing list