1. 24 9月, 2010 1 次提交
  2. 19 5月, 2010 1 次提交
    • W
      ocfs2:dlm: avoid dlm->ast_lock lockres->spinlock dependency break · d9ef7522
      Wengang Wang 提交于
      Currently we process a dirty lockres with the lockres->spinlock taken. While
      during the process, we may need to lock on dlm->ast_lock. This breaks the
      dependency of dlm->ast_lock(lock first) and lockres->spinlock(lock second).
      
      This patch fixes the problem.
      Since we can't release lockres->spinlock, we have to take dlm->ast_lock
      just before taking the lockres->spinlock and release it after lockres->spinlock
      is released. And use __dlm_queue_bast()/__dlm_queue_ast(), the nolock version,
      in dlm_shuffle_lists(). There are no too many locks on a lockres, so there is no
      performance harm.
      Signed-off-by: NWengang Wang <wen.gang.wang@oracle.com>
      Signed-off-by: NJoel Becker <joel.becker@oracle.com>
      d9ef7522
  3. 06 5月, 2010 1 次提交
  4. 04 4月, 2009 8 次提交
  5. 06 1月, 2009 1 次提交
  6. 18 4月, 2008 5 次提交
  7. 11 3月, 2008 2 次提交
    • S
      ocfs2/dlm: Add missing dlm_lockres_put()s in migration path · 52987e2a
      Sunil Mushran 提交于
      During migration, the recovery master node may be asked to master a lockres
      it may not know about. In that case, it would not only have to create a
      lockres and add it to the hash, but also remember to to do the _put_
      corresponding to the kref_init in dlm_init_lockres(), as soon as the migration
      is completed. Yes, we don't wait for the dlm_purge_lockres() to do that
      matching put. Note the ref added for it being in the hash protects the lockres
      from being freed prematurely.
      
      This patch adds that missing put, as described above, to plug a memleak.
      Signed-off-by: NSunil Mushran <sunil.mushran@oracle.com>
      Signed-off-by: NJoel Becker <joel.becker@oracle.com>
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      52987e2a
    • J
      ocfs2: Fix endian bug in o2dlm protocol negotiation. · 0f71b7b4
      Joel Becker 提交于
      struct dlm_query_join_packet is made up of four one-byte fields.  They
      are effectively in big-endian order already.  However, little-endian
      machines swap them before putting the packet on the wire (because
      query_join's response is a status, and that status is treated as a u32
      on the wire).  Thus, a big-endian and little-endian machines will
      treat this structure differently.
      
      The solution is to have little-endian machines swap the structure when
      converting from the structure to the u32 representation.
      Signed-off-by: NJoel Becker <joel.becker@oracle.com>
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      0f71b7b4
  8. 07 2月, 2008 1 次提交
    • J
      ocfs2: Negotiate locking protocol versions. · d24fbcda
      Joel Becker 提交于
      Currently, when ocfs2 nodes connect via TCP, they advertise their
      compatibility level.  If the versions do not match, two nodes cannot speak
      to each other and they disconnect. As a result, this provides no forward or
      backwards compatibility.
      
      This patch implements a simple protocol negotiation at the dlm level by
      introducing a major/minor version number scheme for entities that
      communicate.  Specifically, o2dlm has a major/minor version for interaction
      with o2dlm on other nodes, and ocfs2 itself has a major/minor version for
      interacting with the filesystem on other nodes.
      
      This will allow rolling upgrades of ocfs2 clusters when changes to the
      locking or network protocols can be done in a backwards compatible manner.
      In those cases, only the minor number is changed and the negotatied protocol
      minor is returned from dlm join. In the far less likely event that a
      required protocol change makes backwards compatibility impossible, we simply
      bump the major number.
      Signed-off-by: NJoel Becker <joel.becker@oracle.com>
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      d24fbcda
  9. 08 2月, 2007 7 次提交
  10. 22 11月, 2006 1 次提交
  11. 25 9月, 2006 1 次提交
  12. 30 6月, 2006 1 次提交
  13. 27 6月, 2006 10 次提交