Commit d4e7ed24 authored by Poul-Henning Kamp's avatar Poul-Henning Kamp

Eliminate the objcore argument from plain stv->alloc(), -spersistent

does not require it any more.




git-svn-id: http://www.varnish-cache.org/svn/trunk/varnish-cache@5561 d4fa192b-c00b-0410-8231-f00ffab90ce4
parent bc4c9526
......@@ -100,7 +100,7 @@ stv_pick_stevedore(void)
/*********************************************************************/
static struct storage *
stv_alloc(const struct sess *sp, size_t size, struct objcore *oc)
stv_alloc(const struct sess *sp, size_t size)
{
struct storage *st;
struct stevedore *stv = NULL;
......@@ -126,7 +126,7 @@ stv_alloc(const struct sess *sp, size_t size, struct objcore *oc)
/* try to allocate from it */
AN(stv->alloc);
st = stv->alloc(stv, size, oc);
st = stv->alloc(stv, size);
if (st != NULL)
break;
......@@ -224,7 +224,7 @@ stv_default_allocobj(struct stevedore *stv, struct sess *sp, unsigned ltot,
struct storage *st;
CHECK_OBJ_NOTNULL(soc, STV_OBJ_SECRETES_MAGIC);
st = stv->alloc(stv, ltot, sp->objcore);
st = stv->alloc(stv, ltot);
XXXAN(st);
xxxassert(st->space >= ltot);
ltot = st->len = st->space;
......@@ -321,7 +321,7 @@ struct storage *
STV_alloc(const struct sess *sp, size_t size)
{
return (stv_alloc(sp, size, NULL));
return (stv_alloc(sp, size));
}
void
......
......@@ -38,8 +38,7 @@ struct stv_objsecrets;
typedef void storage_init_f(struct stevedore *, int ac, char * const *av);
typedef void storage_open_f(const struct stevedore *);
typedef struct storage *storage_alloc_f(struct stevedore *, size_t size,
struct objcore *);
typedef struct storage *storage_alloc_f(struct stevedore *, size_t size);
typedef void storage_trim_f(struct storage *, size_t size);
typedef void storage_free_f(struct storage *);
typedef void storage_object_f(const struct sess *sp);
......
......@@ -461,12 +461,11 @@ smf_open(const struct stevedore *st)
/*--------------------------------------------------------------------*/
static struct storage *
smf_alloc(struct stevedore *st, size_t size, struct objcore *oc)
smf_alloc(struct stevedore *st, size_t size)
{
struct smf *smf;
struct smf_sc *sc;
(void)oc;
CAST_OBJ_NOTNULL(sc, st->priv, SMF_SC_MAGIC);
assert(size > 0);
size += (sc->pagesize - 1);
......
......@@ -59,13 +59,12 @@ struct sma {
};
static struct storage *
sma_alloc(struct stevedore *st, size_t size, struct objcore *oc)
sma_alloc(struct stevedore *st, size_t size)
{
struct sma_sc *sma_sc;
struct sma *sma;
CAST_OBJ_NOTNULL(sma_sc, st->priv, SMA_SC_MAGIC);
(void)oc;
Lck_Lock(&sma_sc->sma_mtx);
sma_sc->stats->nreq++;
if (sma_sc->stats->nbytes + size > sma_sc->sma_max)
......
......@@ -69,9 +69,6 @@ SVNID("$Id$")
#define OC_F_NEEDFIXUP OC_F_PRIV
static struct storage *smp_alloc(struct stevedore *st, size_t size,
struct objcore *oc);
/*
* Context for a signature.
*
......@@ -1288,71 +1285,12 @@ smp_close(const struct stevedore *st)
/* XXX: reap thread */
}
/*--------------------------------------------------------------------
* Allocate an object
*/
static struct object *
smp_allocobj(struct stevedore *stv, struct sess *sp, unsigned ltot,
struct stv_objsecrets *soc)
{
struct object *o;
struct storage *st;
st = smp_alloc(stv, ltot, sp->objcore);
XXXAN(st);
xxxassert(st->space >= ltot);
ltot = st->len = st->space;
o = STV_MkObject(sp, st->ptr, ltot, soc);
CHECK_OBJ_NOTNULL(o, OBJECT_MAGIC);
o->objstore = st;
return (o);
}
/*--------------------------------------------------------------------
* Designate object
*/
static void
smp_object(const struct sess *sp)
{
struct smp_sc *sc;
struct smp_seg *sg;
struct smp_object *so;
CHECK_OBJ_NOTNULL(sp->obj, OBJECT_MAGIC);
CHECK_OBJ_NOTNULL(sp->obj->objstore, STORAGE_MAGIC);
CHECK_OBJ_NOTNULL(sp->obj->objstore->stevedore, STEVEDORE_MAGIC);
CHECK_OBJ_NOTNULL(sp->obj->objcore, OBJCORE_MAGIC);
CAST_OBJ_NOTNULL(sg, sp->obj->objcore->priv2, SMP_SEG_MAGIC);
CAST_OBJ_NOTNULL(sc, sp->obj->objstore->priv, SMP_SC_MAGIC);
sp->obj->objcore->flags |= OC_F_LRUDONTMOVE;
Lck_Lock(&sc->mtx);
assert(sg->nalloc2 < sg->nalloc1);
sp->obj->smp_index = sg->nalloc2++;
so = &sg->objs[sp->obj->smp_index];
sg->nfixed++;
sg->nobj++;
assert(sizeof so->hash == DIGEST_LEN);
memcpy(so->hash, sp->obj->objcore->objhead->digest, DIGEST_LEN);
so->ttl = sp->obj->ttl;
so->ptr = sp->obj;
so->ban = sp->obj->ban_t;
Lck_Unlock(&sc->mtx);
}
/*--------------------------------------------------------------------
* Allocate a bite
*/
static struct storage *
smp_alloc(struct stevedore *st, size_t size, struct objcore *oc)
smp_allocx(struct stevedore *st, size_t size, struct objcore *oc)
{
struct smp_sc *sc;
struct storage *ss;
......@@ -1453,6 +1391,77 @@ smp_alloc(struct stevedore *st, size_t size, struct objcore *oc)
return (ss);
}
/*--------------------------------------------------------------------
* Allocate an object
*/
static struct object *
smp_allocobj(struct stevedore *stv, struct sess *sp, unsigned ltot,
struct stv_objsecrets *soc)
{
struct object *o;
struct storage *st;
st = smp_allocx(stv, ltot, sp->objcore);
XXXAN(st);
xxxassert(st->space >= ltot);
ltot = st->len = st->space;
o = STV_MkObject(sp, st->ptr, ltot, soc);
CHECK_OBJ_NOTNULL(o, OBJECT_MAGIC);
o->objstore = st;
return (o);
}
/*--------------------------------------------------------------------
* Designate object
*/
static void
smp_object(const struct sess *sp)
{
struct smp_sc *sc;
struct smp_seg *sg;
struct smp_object *so;
CHECK_OBJ_NOTNULL(sp->obj, OBJECT_MAGIC);
CHECK_OBJ_NOTNULL(sp->obj->objstore, STORAGE_MAGIC);
CHECK_OBJ_NOTNULL(sp->obj->objstore->stevedore, STEVEDORE_MAGIC);
CHECK_OBJ_NOTNULL(sp->obj->objcore, OBJCORE_MAGIC);
CAST_OBJ_NOTNULL(sg, sp->obj->objcore->priv2, SMP_SEG_MAGIC);
CAST_OBJ_NOTNULL(sc, sp->obj->objstore->priv, SMP_SC_MAGIC);
sp->obj->objcore->flags |= OC_F_LRUDONTMOVE;
Lck_Lock(&sc->mtx);
assert(sg->nalloc2 < sg->nalloc1);
sp->obj->smp_index = sg->nalloc2++;
so = &sg->objs[sp->obj->smp_index];
sg->nfixed++;
sg->nobj++;
assert(sizeof so->hash == DIGEST_LEN);
memcpy(so->hash, sp->obj->objcore->objhead->digest, DIGEST_LEN);
so->ttl = sp->obj->ttl;
so->ptr = sp->obj;
so->ban = sp->obj->ban_t;
Lck_Unlock(&sc->mtx);
}
/*--------------------------------------------------------------------
* Allocate a bite
*/
static struct storage *
smp_alloc(struct stevedore *st, size_t size)
{
return (smp_allocx(st, size, NULL));
}
static void
smp_trim(struct storage *ss, size_t size)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment