1. 27 Jun, 2008 3 commits
    • Steven Whitehouse's avatar
      [GFS2] No lock_nolock · 048bca22
      Steven Whitehouse authored
      This patch merges the lock_nolock module into GFS2 itself. As well as removing
      some of the overhead of the module, it also means that its now impossible to
      build GFS2 without a lock module (which would be a pointless thing to do
      anyway).
      
      We also plan to merge lock_dlm into GFS2 in the future, but that is a more
      tricky task, and will therefore be a separate patch.
      Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
      Cc: David Teigland <teigland@redhat.com>
      048bca22
    • Steven Whitehouse's avatar
      [GFS2] Fix ordering bug in lock_dlm · f3c9d38a
      Steven Whitehouse authored
      This looks like a lot of change, but in fact its not. Mostly its
      things moving from one file to another. The change is just that
      instead of queuing lock completions and callbacks from the DLM
      we now pass them directly to GFS2.
      
      This gives us a net loss of two list heads per glock (a fair
      saving in memory) plus a reduction in the latency of delivering
      the messages to GFS2, plus we now have one thread fewer as well.
      There was a bug where callbacks and completions could be delivered
      in the wrong order due to this unnecessary queuing which is fixed
      by this patch.
      Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
      Cc: Bob Peterson <rpeterso@redhat.com>
      f3c9d38a
    • Steven Whitehouse's avatar
      [GFS2] Clean up the glock core · 6802e340
      Steven Whitehouse authored
      This patch implements a number of cleanups to the core of the
      GFS2 glock code. As a result a lot of code is removed. It looks
      like a really big change, but actually a large part of this patch
      is either removing or moving existing code.
      
      There are some new bits too though, such as the new run_queue()
      function which is considerably streamlined. Highlights of this
      patch include:
      
       o Fixes a cluster coherency bug during SH -> EX lock conversions
       o Removes the "glmutex" code in favour of a single bit lock
       o Removes the ->go_xmote_bh() for inodes since it was duplicating
         ->go_lock()
       o We now only use the ->lm_lock() function for both locks and
         unlocks (i.e. unlock is a lock with target mode LM_ST_UNLOCKED)
       o The fast path is considerably shortly, giving performance gains
         especially with lock_nolock
       o The glock_workqueue is now used for all the callbacks from the DLM
         which allows us to simplify the lock_dlm module (see following patch)
       o The way is now open to make further changes such as eliminating the two
         threads (gfs2_glockd and gfs2_scand) in favour of a more efficient
         scheme.
      
      This patch has undergone extensive testing with various test suites
      so it should be pretty stable by now.
      Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
      Cc: Bob Peterson <rpeterso@redhat.com>
      6802e340
  2. 25 Jun, 2008 4 commits
  3. 24 Jun, 2008 26 commits
  4. 23 Jun, 2008 7 commits