• Steven Whitehouse's avatar
    dlm: Don't send callback to node making lock request when "try 1cb" fails · 314dd2a0
    Steven Whitehouse authored
    When converting a lock, an lkb is in the granted state and also being used
    to request a new state. In the case that the conversion was a "try 1cb"
    type which has failed, and if the new state was incompatible with the old
    state, a callback was being generated to the requesting node. This is
    incorrect as callbacks should only be sent to all the other nodes holding
    blocking locks. The requesting node should receive the normal (failed)
    response to its "try 1cb" conversion request only.
    
    This was discovered while debugging a performance problem on GFS2, however
    this fix also speeds up GFS as well. In the GFS2 case the performance gain
    is over 10x for cases of write activity to an inode whose glock is cached
    on another, idle (wrt that glock) node.
    
    (comment added, dct)
    Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
    Tested-by: default avatarAbhijith Das <adas@redhat.com>
    Signed-off-by: default avatarDavid Teigland <teigland@redhat.com>
    314dd2a0
lock.c 121 KB