fe7af65 When locks on the convert queue are granted, we need to try again to grant

Authored and Committed by teigland 19 years ago
    When locks on the convert queue are granted, we need to try again to grant
    locks from the beginning of the convert queue.  Locks at the beginning may
    not be grantable because of locks at the end.  But, granting locks at the
    end (permitted when using the NOORDER flag) may make earlier locks
    grantable.  Specifically, we have the following situation when running
    "gfs_tool freeze" in parallel on three machines:
    
    Granted 1 PR
            2 PR
            3 PR
    
    * nodeid 3 converts PR->CW
    
    Granted 1 PR
            2 PR
    Convert 3 PR->CW
    
    * nodeid 2 converts PR->CW
      granted mode is demoted to avoid conversion deadlock
    
    Granted 1 PR
    Convert 2 NL->CW
            3 PR->CW
    
    * nodeid 1 converts PR->CW
      granted mode is demoted to avoid conversion deadlock
    
    Granted
    Convert 1 NL->CW
            2 NL->CW
            3 PR->CW
    
    * conversions for 1 and 2 are blocked by 3's PR
    * conversion for 3 is granted
    
    Granted 3 CW
    Convert 1 NL->CW
            2 NL->CW
    
    * other conversions are now grantable, we must try to grant them again
    
        
file modified
+21 -14