[master] 89e295c Export the VSMW cluster New/Destroy functions
Poul-Henning Kamp
phk at FreeBSD.org
Mon Jan 8 23:19:08 UTC 2018
commit 89e295c8eace218f2ffff24be0a11e827acfdb7c
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Mon Jan 8 20:00:33 2018 +0000
Export the VSMW cluster New/Destroy functions
diff --git a/bin/varnishd/common/common_vsmw.c b/bin/varnishd/common/common_vsmw.c
index 6611487..f30c7de 100644
--- a/bin/varnishd/common/common_vsmw.c
+++ b/bin/varnishd/common/common_vsmw.c
@@ -158,8 +158,8 @@ vsmw_mkent(const struct vsmw *vsmw, const char *pfx)
/*--------------------------------------------------------------------*/
-static struct vsmw_cluster *
-vsmw_NewCluster(struct vsmw *vsmw, size_t len, const char *pfx)
+struct vsmw_cluster *
+VSMW_NewCluster(struct vsmw *vsmw, size_t len, const char *pfx)
{
struct vsmw_cluster *vc;
int fd;
@@ -195,8 +195,8 @@ vsmw_NewCluster(struct vsmw *vsmw, size_t len, const char *pfx)
return (vc);
}
-static void
-vsmw_DestroyCluster(struct vsmw *vsmw, struct vsmw_cluster **vcp)
+void
+VSMW_DestroyCluster(struct vsmw *vsmw, struct vsmw_cluster **vcp)
{
struct vsmw_cluster *vc;
@@ -238,12 +238,13 @@ VSMW_Allocv(struct vsmw *vsmw, const char *class, size_t len,
AZ(VSB_finish(vsmw->vsb));
REPLACE(seg->id, VSB_data(vsmw->vsb));
- vc = vsmw_NewCluster(vsmw, len, class);
+ vc = VSMW_NewCluster(vsmw, 64 + len, class);
AN(vc);
vc->refs++;
seg->cluster = vc;
- seg->ptr = vc->ptr;
+ seg->off = 64;
+ seg->ptr = seg->off + (char*)vc->ptr;
VTAILQ_INSERT_TAIL(&vsmw->segs, seg, list);
fd = openat(vsmw->vdirfd, vsmw->idx, O_APPEND | O_WRONLY);
@@ -278,7 +279,7 @@ vsmw_delseg(struct vsmw *vsmw, struct vsmwseg *seg, int fixidx)
CHECK_OBJ_NOTNULL(seg, VSMWSEG_MAGIC);
if (!--seg->cluster->refs)
- vsmw_DestroyCluster(vsmw, &seg->cluster);
+ VSMW_DestroyCluster(vsmw, &seg->cluster);
VTAILQ_REMOVE(&vsmw->segs, seg, list);
REPLACE(seg->class, NULL);
diff --git a/bin/varnishd/common/vsmw.h b/bin/varnishd/common/vsmw.h
index 1ba2975..da6c3e3 100644
--- a/bin/varnishd/common/vsmw.h
+++ b/bin/varnishd/common/vsmw.h
@@ -32,6 +32,10 @@
#define VSMW_H_INCLUDED
struct vsmw;
+struct vsmw_cluster;
+
+struct vsmw_cluster *VSMW_NewCluster(struct vsmw *, size_t , const char *);
+void VSMW_DestroyCluster(struct vsmw *, struct vsmw_cluster **);
void *VSMW_Allocv(struct vsmw *, const char *, size_t, const char *, va_list);
void *VSMW_Allocf(struct vsmw *, const char *, size_t, const char *, ...);
More information about the varnish-commit
mailing list