[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: (ITS#3652) Add access_control() hook to overlays

ando@sys-net.it wrote:

>One thing that scares me is that when running thru the stack of overlays,
>if the SLAP_DBFLAG_OVERLAY flag is not set in the database structure, the
>structure is copied in a temporary and the flag is set for the duration of
>the operation; then the original copy is set again into the o_bd field of
>the operation.
>I'm not sure if this is strictly required (why don't we just set that flag
>into the original structure permanetly?) or if it poses a light or severe
>performance penalty.
The flag indicates that the current structure is a temporary copy. There 
may be a better way to do things. The reason it's copied is because the 
op->o_bd->bd_info pointer must be set for each overlay that gets 
invoked. And since the database structure is a shared resource, we can't 
just write into the original, and we can't just make one copy that's 
used everywhere (without adding a mutex, which is not a good idea.)

Come to think of it, if we just added the pointer to the Operation 
structure we could eliminate the copy. That would require updating all 
the overlays to use the Operation pointer of course.

  -- Howard Chu
  Chief Architect, Symas Corp.       Director, Highland Sun
  http://www.symas.com               http://highlandsun.com/hyc
  Symas: Premier OpenSource Development and Support