• David Teigland's avatar
    [DLM] change lkid format · ce03f12b
    David Teigland authored
    A lock id is a uint32 and is used as an opaque reference to the lock.  For
    userland apps, the lkid is passed up, through libdlm, as the return value
    from a write() on the dlm device.  This created a problem when the high
    bit was 1, making the lkid look like an error.  This is fixed by changing
    how the lkid is composed.  The low 16 bits identified the hash bucket for
    the lock and the high 16 bits were a per-bucket counter (which eventually
    hit 0x8000 causing the problem).  These are simply swapped around; the
    number of hash table buckets is far below 0x8000, making all lkid's
    positive when viewed as signed.
    Signed-off-by: default avatarDavid Teigland <teigland@redhat.com>
    Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
    ce03f12b
lock.c 103 KB