r5579 - trunk/varnish-cache/bin/varnishd

phk at varnish-cache.org phk at varnish-cache.org
Mon Nov 22 10:08:29 CET 2010


Author: phk
Date: 2010-11-22 10:08:28 +0100 (Mon, 22 Nov 2010)
New Revision: 5579

Modified:
   trunk/varnish-cache/bin/varnishd/cache_expire.c
   trunk/varnish-cache/bin/varnishd/cache_hash.c
   trunk/varnish-cache/bin/varnishd/hash_slinger.h
   trunk/varnish-cache/bin/varnishd/stevedore.c
   trunk/varnish-cache/bin/varnishd/stevedore.h
   trunk/varnish-cache/bin/varnishd/storage_synth.c
Log:
All objects have an objstore now, remove conditions that no longer apply.

Move HSH_Freestore() to STV_Freestore(), it's a better fit.



Modified: trunk/varnish-cache/bin/varnishd/cache_expire.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_expire.c	2010-11-22 08:51:03 UTC (rev 5578)
+++ trunk/varnish-cache/bin/varnishd/cache_expire.c	2010-11-22 09:08:28 UTC (rev 5579)
@@ -138,12 +138,10 @@
 	(void)update_object_when(o);
 	binheap_insert(exp_heap, oc);
 	assert(oc->timer_idx != BINHEAP_NOIDX);
-	if (o->objstore != NULL) {
-		lru = STV_lru(o->objstore);
-		CHECK_OBJ_NOTNULL(lru, LRU_MAGIC);
-		VLIST_INSERT_BEFORE(&lru->senteniel, oc, lru_list);
-		oc->flags |= OC_F_ONLRU;
-	}
+	lru = STV_lru(o->objstore);
+	CHECK_OBJ_NOTNULL(lru, LRU_MAGIC);
+	VLIST_INSERT_BEFORE(&lru->senteniel, oc, lru_list);
+	oc->flags |= OC_F_ONLRU;
 	Lck_Unlock(&exp_mtx);
 	oc_updatemeta(oc);
 }
@@ -168,8 +166,6 @@
 	if (oc == NULL)
 		return (0);
 	CHECK_OBJ_NOTNULL(oc, OBJCORE_MAGIC);
-	/* We must have an objhead, otherwise we have no business on a LRU */
-	CHECK_OBJ_NOTNULL(oc->objhead, OBJHEAD_MAGIC);
 
 	/*
 	 * For -spersistent we don't move objects on the lru list.  Each
@@ -181,8 +177,6 @@
 	if (oc->flags & OC_F_LRUDONTMOVE)
 		return (0);
 
-	if (o->objstore == NULL)	/* XXX ?? */
-		return (0);
 	lru = STV_lru(o->objstore);
 	CHECK_OBJ_NOTNULL(lru, LRU_MAGIC);
 	retval = 0;

Modified: trunk/varnish-cache/bin/varnishd/cache_hash.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_hash.c	2010-11-22 08:51:03 UTC (rev 5578)
+++ trunk/varnish-cache/bin/varnishd/cache_hash.c	2010-11-22 09:08:28 UTC (rev 5579)
@@ -147,18 +147,6 @@
 }
 
 void
-HSH_Freestore(struct object *o)
-{
-	struct storage *st, *stn;
-
-	VTAILQ_FOREACH_SAFE(st, &o->store, list, stn) {
-		CHECK_OBJ_NOTNULL(st, STORAGE_MAGIC);
-		VTAILQ_REMOVE(&o->store, st, list);
-		STV_free(st);
-	}
-}
-
-void
 HSH_AddString(const struct sess *sp, const char *str)
 {
 	int l;

Modified: trunk/varnish-cache/bin/varnishd/hash_slinger.h
===================================================================
--- trunk/varnish-cache/bin/varnishd/hash_slinger.h	2010-11-22 08:51:03 UTC (rev 5578)
+++ trunk/varnish-cache/bin/varnishd/hash_slinger.h	2010-11-22 09:08:28 UTC (rev 5579)
@@ -52,7 +52,6 @@
 /* cache_hash.c */
 void HSH_Prealloc(const struct sess *sp);
 void HSH_Cleanup(struct worker *w);
-void HSH_Freestore(struct object *o);
 struct objcore *HSH_Lookup(struct sess *sp, struct objhead **poh);
 void HSH_Unbusy(const struct sess *sp);
 void HSH_Ref(struct objcore *o);

Modified: trunk/varnish-cache/bin/varnishd/stevedore.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/stevedore.c	2010-11-22 08:51:03 UTC (rev 5578)
+++ trunk/varnish-cache/bin/varnishd/stevedore.c	2010-11-22 09:08:28 UTC (rev 5579)
@@ -112,10 +112,8 @@
 	 */
 	if (sp->obj != NULL) {
 		CHECK_OBJ_NOTNULL(sp->obj, OBJECT_MAGIC);
-		if (sp->obj->objstore != NULL) {
-			stv = sp->obj->objstore->stevedore;
-			CHECK_OBJ_NOTNULL(stv, STEVEDORE_MAGIC);
-		}
+		stv = sp->obj->objstore->stevedore;
+		CHECK_OBJ_NOTNULL(stv, STEVEDORE_MAGIC);
 	}
 
 	for (;;) {
@@ -266,9 +264,24 @@
 	AN(stv->allocobj);
 	o = stv->allocobj(stv, sp, ltot, &soc);
 	CHECK_OBJ_NOTNULL(o, OBJECT_MAGIC);
+	CHECK_OBJ_NOTNULL(o->objstore, STORAGE_MAGIC);
 	return (o);
 }
 
+/*-------------------------------------------------------------------*/
+
+void
+STV_Freestore(struct object *o)
+{
+	struct storage *st, *stn;
+
+	VTAILQ_FOREACH_SAFE(st, &o->store, list, stn) {
+		CHECK_OBJ_NOTNULL(st, STORAGE_MAGIC);
+		VTAILQ_REMOVE(&o->store, st, list);
+		STV_free(st);
+	}
+}
+
 /*---------------------------------------------------------------------
  * Default objcore methods
  */
@@ -293,11 +306,8 @@
 	CAST_OBJ_NOTNULL(o, oc->priv, OBJECT_MAGIC);
 	oc->priv = NULL;
 
-	HSH_Freestore(o);
-	if (o->objstore != NULL)
-		STV_free(o->objstore);
-	else
-		FREE_OBJ(o);
+	STV_Freestore(o);
+	STV_free(o->objstore);
 }
 
 struct objcore_methods default_oc_methods = {

Modified: trunk/varnish-cache/bin/varnishd/stevedore.h
===================================================================
--- trunk/varnish-cache/bin/varnishd/stevedore.h	2010-11-22 08:51:03 UTC (rev 5578)
+++ trunk/varnish-cache/bin/varnishd/stevedore.h	2010-11-22 09:08:28 UTC (rev 5579)
@@ -81,6 +81,7 @@
 struct lru *STV_lru(const struct storage *st);
 void STV_Config(const char *spec);
 void STV_Config_Transient(void);
+void STV_Freestore(struct object *o);
 
 struct lru *LRU_Alloc(void);
 

Modified: trunk/varnish-cache/bin/varnishd/storage_synth.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/storage_synth.c	2010-11-22 08:51:03 UTC (rev 5578)
+++ trunk/varnish-cache/bin/varnishd/storage_synth.c	2010-11-22 09:08:28 UTC (rev 5579)
@@ -79,7 +79,7 @@
 	struct vsb *vsb;
 
 	CHECK_OBJ_NOTNULL(obj, OBJECT_MAGIC);
-	HSH_Freestore(obj);
+	STV_Freestore(obj);
 	obj->len = 0;
 
 	Lck_Lock(&sms_mtx);




More information about the varnish-commit mailing list