[master] 16e0798 Remove the object -> objcore link
Poul-Henning Kamp
phk at FreeBSD.org
Thu Aug 21 22:36:17 CEST 2014
commit 16e07984abbeac8fa5a014175efd164e8e90d1a8
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Thu Aug 21 20:36:00 2014 +0000
Remove the object -> objcore link
diff --git a/bin/varnishd/cache/cache.h b/bin/varnishd/cache/cache.h
index 474a04f..9de6cfc 100644
--- a/bin/varnishd/cache/cache.h
+++ b/bin/varnishd/cache/cache.h
@@ -570,27 +570,18 @@ enum obj_flags {
struct object {
unsigned magic;
#define OBJECT_MAGIC 0x32851d42
- char oa_vxid[4];
struct storage *objstore;
- struct objcore *objcore;
+ char oa_vxid[4];
uint8_t *oa_vary;
-
uint8_t *oa_http;
-
-
uint8_t oa_flags[1];
-
- /* Bit positions in the gzip stream */
char oa_gzipbits[24];
-
- /* VCL only variables */
char oa_lastmodified[8];
struct body body[1];
struct storage *esidata;
-
};
/*--------------------------------------------------------------------*/
diff --git a/bin/varnishd/cache/cache_obj.c b/bin/varnishd/cache/cache_obj.c
index ee3cf14..e05be30 100644
--- a/bin/varnishd/cache/cache_obj.c
+++ b/bin/varnishd/cache/cache_obj.c
@@ -74,6 +74,7 @@ struct objiter {
unsigned magic;
#define OBJITER_MAGIC 0x745fb151
struct busyobj *bo;
+ struct objcore *oc;
struct object *obj;
struct storage *st;
struct worker *wrk;
@@ -92,9 +93,10 @@ ObjIterBegin(struct worker *wrk, struct objcore *oc)
ALLOC_OBJ(oi, OBJITER_MAGIC);
if (oi == NULL)
return (oi);
+ oi->oc = oc;
oi->obj = obj;
oi->wrk = wrk;
- oi->bo = HSH_RefBusy(obj->objcore);
+ oi->bo = HSH_RefBusy(oc);
return (oi);
}
@@ -169,7 +171,7 @@ ObjIterEnd(struct objiter **oi)
CHECK_OBJ_NOTNULL((*oi), OBJITER_MAGIC);
CHECK_OBJ_NOTNULL((*oi)->obj, OBJECT_MAGIC);
if ((*oi)->bo != NULL) {
- if ((*oi)->obj->objcore->flags & OC_F_PASS)
+ if ((*oi)->oc->flags & OC_F_PASS)
(*oi)->bo->abandon = 1;
VBO_DerefBusyObj((*oi)->wrk, &(*oi)->bo);
}
diff --git a/bin/varnishd/storage/stevedore.c b/bin/varnishd/storage/stevedore.c
index 8c5981c..fbdcda1 100644
--- a/bin/varnishd/storage/stevedore.c
+++ b/bin/varnishd/storage/stevedore.c
@@ -229,13 +229,12 @@ STV_MkObject(struct stevedore *stv, struct busyobj *bo,
VTAILQ_INIT(&o->body->list);
- o->objcore = bo->fetch_objcore;
-
- o->objcore->stobj->stevedore = stv;
+ bo->fetch_objcore->stobj->magic = STOREOBJ_MAGIC;
+ bo->fetch_objcore->stobj->stevedore = stv;
o->body->stevedore = stv;
AN(stv->methods);
- o->objcore->stobj->priv = o;
- o->objcore->stobj->priv2 = (uintptr_t)stv;
+ bo->fetch_objcore->stobj->priv = o;
+ bo->fetch_objcore->stobj->priv2 = (uintptr_t)stv;
VSLb(bo->vsl, SLT_Storage, "%s %s", stv->name, stv->ident);
return (o);
}
@@ -319,8 +318,6 @@ STV_NewObject(struct busyobj *bo, const char *hint, unsigned wsl)
CHECK_OBJ_NOTNULL(o, OBJECT_MAGIC);
CHECK_OBJ_NOTNULL(o->objstore, STORAGE_MAGIC);
- CHECK_OBJ_NOTNULL(o->objcore, OBJCORE_MAGIC);
- assert(o->objcore->stobj->stevedore == stv);
AN(stv->methods);
return (1);
}
diff --git a/bin/varnishd/storage/storage_persistent.c b/bin/varnishd/storage/storage_persistent.c
index 4ae0d2d..281561b 100644
--- a/bin/varnishd/storage/storage_persistent.c
+++ b/bin/varnishd/storage/storage_persistent.c
@@ -541,7 +541,7 @@ smp_allocobj(struct stevedore *stv, struct busyobj *bo,
o->objstore = st;
bo->stats->n_object++;
- oc = o->objcore;
+ oc = bo->fetch_objcore;
CHECK_OBJ_NOTNULL(oc, OBJCORE_MAGIC);
Lck_Lock(&sc->mtx);
diff --git a/bin/varnishd/storage/storage_persistent_silo.c b/bin/varnishd/storage/storage_persistent_silo.c
index 4553185..440446a 100644
--- a/bin/varnishd/storage/storage_persistent_silo.c
+++ b/bin/varnishd/storage/storage_persistent_silo.c
@@ -429,7 +429,6 @@ smp_oc_getobj(struct dstat *ds, struct objcore *oc)
/* Check again, we might have raced. */
if (oc->stobj->priv2 & NEED_FIXUP) {
/* We trust caller to have a refcnt for us */
- o->objcore = oc;
bad = 0;
l = 0;
More information about the varnish-commit
mailing list