09 Jan, 2009

1 commit


04 Feb, 2008

1 commit


31 Jan, 2008

1 commit

  • To prevent the master of an rsb from changing rapidly, an unused rsb is kept
    on the "toss list" for a period of time to be reused. The toss list was
    being cleared completely for each recovery, which is unnecessary. Much of
    the benefit of the toss list can be maintained if nodes keep rsb's in their
    toss list that they are the master of. These rsb's need to be included
    when the resource directory is rebuilt during recovery.

    Signed-off-by: David Teigland

    David Teigland
     

30 Jan, 2008

1 commit


06 Feb, 2007

2 commits

  • If master recovery happens on an rsb in one recovery sequence, then that
    sequence is aborted before lock recovery happens, then in the next
    sequence, we rely on the previous master recovery (which may now be
    invalid due to another node ignoring a lookup result) and go on do to the
    lock recovery where we get stuck due to an invalid master value.

    recovery cycle begins: master of rsb X has left
    nodes A and B send node C an rcom lookup for X to find the new master
    C gets lookup from B first, sets B as new master, and sends reply back to B
    C gets lookup from A next, and sends reply back to A saying B is master
    A gets lookup reply from C and sets B as the new master in the rsb
    recovery cycle on A, B and C is aborted to start a new recovery
    B gets lookup reply from C and ignores it since there's a new recovery
    recovery cycle begins: some other node has joined
    B doesn't think it's the master of X so it doesn't rebuild it in the directory
    C looks up the master of X, no one is master, so it becomes new master
    B looks up the master of X, finds it's C
    A believes that B is the master of X, so it sends its lock to B
    B sends an error back to A
    A resends
    this repeats forever, the incorrect master value on A is never corrected

    The fix is to do master recovery on an rsb that still has the NEW_MASTER
    flag set from an earlier recovery sequence, and therefore didn't complete
    lock recovery.

    Signed-off-by: David Teigland
    Signed-off-by: Steven Whitehouse

    David Teigland
     
  • Add a "ci_" prefix to the fields in the dlm_config_info struct so that we
    can use macros to add configfs functions to access them (in a later
    patch). No functional changes in this patch, just naming changes.

    Signed-off-by: David Teigland
    Signed-off-by: Steven Whitehouse

    David Teigland
     

30 Nov, 2006

1 commit

  • Red Hat BZ 213684

    If a node sends an lkb to the new master (RCOM_LOCK message) during
    recovery and recovery is then aborted on both nodes before it gets a
    reply, the res_recover_locks_count needs to be reset to 0 so that when the
    subsequent recovery comes along and sends the lkb to the new master again
    the assertion doesn't trigger that checks that counter is zero.

    Signed-off-by: David Teigland
    Signed-off-by: Steven Whitehouse

    David Teigland
     

24 Aug, 2006

1 commit


21 Aug, 2006

1 commit

  • Introduce new function dlm_dump_rsb() to call within assertions instead of
    dlm_print_rsb(). The new function dumps info about all locks on the rsb
    in addition to rsb details.

    Signed-off-by: David Teigland
    Signed-off-by: Steven Whitehouse

    David Teigland
     

26 Jul, 2006

1 commit

  • If a node becomes the new master of an rsb during recovery, the
    LOCKS_PURGED flag needs to be set on it so that any waiting/converting
    locks will try to be granted.

    Signed-off-by: David Teigland
    Signed-off-by: Steven Whitehouse

    David Teigland
     

24 May, 2006

1 commit


20 Jan, 2006

1 commit


18 Jan, 2006

1 commit

  • This is the core of the distributed lock manager which is required
    to use GFS2 as a cluster filesystem. It is also used by CLVM and
    can be used as a standalone lock manager independantly of either
    of these two projects.

    It implements VAX-style locking modes.

    Signed-off-by: David Teigland
    Signed-off-by: Steve Whitehouse

    David Teigland