Filter *filter;
Entry *user;
Backend *b2 = op->o_bd;
+ void *o_private = op->o_private;
if ( target && dn_match( &target->e_nname, op_ndn ) ) {
user = target;
} else {
+ /* back-bdb stored lockinfo here, we saved it
+ * above. Clear it out so that a new lock can be used.
+ */
+ op->o_private = NULL;
op->o_bd = select_backend( op_ndn, 0, 0 );
rc = be_entry_get_rw(op, op_ndn, NULL, NULL, 0, &user );
}
}
if ( user != target ) {
be_entry_release_r( op, user );
+ /* restore previous lockinfo, if any */
+ op->o_private = o_private;
}
}
op->o_bd = b2;