openldap/servers/slapd/back-ldbm/entry.c

46 lines
850 B
C
Raw Normal View History

/* entry.c - ldbm backend entry_release routine */
/* $OpenLDAP$ */
1999-08-07 07:07:46 +08:00
/*
2003-01-04 04:20:47 +08:00
* Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved.
1999-08-07 07:07:46 +08:00
* COPYING RESTRICTIONS APPLY, see COPYRIGHT file
*/
#include "portable.h"
#include <stdio.h>
#include <ac/socket.h>
#include <ac/string.h>
#include "slap.h"
#include "back-ldbm.h"
#include "proto-back-ldbm.h"
int
ldbm_back_entry_release_rw(
Backend *be,
2000-09-30 12:13:30 +08:00
Connection *conn,
Operation *op,
Entry *e,
int rw
)
{
struct ldbminfo *li = (struct ldbminfo *) be->be_private;
if ( slapMode == SLAP_SERVER_MODE ) {
/* free entry and reader or writer lock */
cache_return_entry_rw( &li->li_cache, e, rw );
if( rw ) {
ldap_pvt_thread_rdwr_wunlock( &li->li_giant_rwlock );
} else {
ldap_pvt_thread_rdwr_runlock( &li->li_giant_rwlock );
}
} else {
entry_free( e );
}
return 0;
}