• Alexander Aring's avatar
    fs: dlm: use a non-static queue for callbacks · 61bed0ba
    Alexander Aring authored
    This patch will introducde a queue implementation for callbacks by using
    the Linux lists. The current callback queue handling is implemented by a
    static limit of 6 entries, see DLM_CALLBACKS_SIZE. The sequence number
    inside the callback structure was used to see if the entries inside the
    static entry is valid or not. We don't need any sequence numbers anymore
    with a dynamic datastructure with grows and shrinks during runtime to
    offer such functionality.
    
    We assume that every callback will be delivered to the DLM user if once
    queued. Therefore the callback flag DLM_CB_SKIP was dropped and the
    check for skipping bast was moved before worker handling and not skip
    while the callback worker executes. This will reduce unnecessary queues
    of the callback worker.
    
    All last callback saves are pointers now and don't need to copied over.
    There is a reference counter for callback structures which will care
    about to free the callback structures at the right time if they are not
    referenced anymore.
    Signed-off-by: default avatarAlexander Aring <aahringo@redhat.com>
    Signed-off-by: default avatarDavid Teigland <teigland@redhat.com>
    61bed0ba
memory.h 1.27 KB