• Rusty Russell's avatar
    tdb: cleanup: tdb_nest_lock/tdb_nest_unlock · acf1a21e
    Rusty Russell authored
    Because fcntl locks don't nest, we track them in the tdb->lockrecs array
    and only place/release them when the count goes to 1/0.  We only do this
    for record locks, so we simply place the list number (or -1 for the free
    list) in the structure.
    
    To generalize this:
    
    1) Put the offset rather than list number in struct tdb_lock_type.
    2) Rename _tdb_lock() to tdb_nest_lock, make it non-static and move the
       allrecord check out to the callers (except the mark case which doesn't
       care).
    3) Rename _tdb_unlock() to tdb_nest_unlock(), make it non-static and
       move the allrecord out to the callers (except mark again).
    Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
    acf1a21e
tdb_private.h 10.8 KB