1. 31 3月, 2011 1 次提交
  2. 21 2月, 2011 1 次提交
    • T
      ocfs2: Remove ENTRY from masklog. · ef6b689b
      Tao Ma 提交于
      ENTRY is used to record the entry of a function.
      But because it is added in so many functions, if we enable it,
      the system logs get filled up quickly and cause too much I/O.
      So actually no one can open it for a production system or even
      for a test.
      
      So for mlog_entry_void, we just remove it.
      for mlog_entry(...), we replace it with mlog(0,...), and they
      will be replace by trace event later.
      Signed-off-by: NTao Ma <boyu.mt@taobao.com>
      ef6b689b
  3. 10 12月, 2010 1 次提交
    • S
      ocfs2/dlm: Migrate lockres with no locks if it has a reference · 388c4bcb
      Sunil Mushran 提交于
      o2dlm was not migrating resources with zero locks because it assumed that that
      resource would get purged by dlm_thread. However, some usage patterns involve
      creating and dropping locks at a high rate leading to the migrate thread seeing
      zero locks but the purge thread seeing an active reference. When this happens,
      the dlm_thread cannot purge the resource and the migrate thread sees no reason
      to migrate that resource. The spell is broken when the migrate thread catches
      the resource with a lock.
      
      The fix is to make the migrate thread also consider the reference map.
      
      This usage pattern can be triggered by userspace on userdlm locks and flocks.
      Signed-off-by: NSunil Mushran <sunil.mushran@oracle.com>
      Signed-off-by: NJoel Becker <joel.becker@oracle.com>
      388c4bcb
  4. 24 9月, 2010 1 次提交
  5. 08 8月, 2010 2 次提交
    • W
      ocfs2/dlm: remove potential deadlock -V3 · b11f1f1a
      Wengang Wang 提交于
      When we need to take both dlm_domain_lock and dlm->spinlock, we should take
      them in order of: dlm_domain_lock then dlm->spinlock.
      
      There is pathes disobey this order. That is calling dlm_lockres_put() with
      dlm->spinlock held in dlm_run_purge_list. dlm_lockres_put() calls dlm_put() at
      the ref and dlm_put() locks on dlm_domain_lock.
      
      Fix:
      Don't grab/put the dlm when the initialising/releasing lockres.
      That grab is not required because we don't call dlm_unregister_domain()
      based on refcount.
      Signed-off-by: NWengang Wang <wen.gang.wang@oracle.com>
      Cc: stable@kernel.org
      Signed-off-by: NJoel Becker <joel.becker@oracle.com>
      b11f1f1a
    • W
      ocfs2/dlm: fix a dead lock · 6d98c3cc
      Wengang Wang 提交于
      When we have to take both dlm->master_lock and lockres->spinlock,
      take them in order
      
      lockres->spinlock and then dlm->master_lock.
      
      The patch fixes a violation of the rule.
      We can simply move taking dlm->master_lock to where we have dropped res->spinlock
      since when we access res->state and free mle memory we don't need master_lock's
      protection.
      Signed-off-by: NWengang Wang <wen.gang.wang@oracle.com>
      Cc: stable@kernel.org
      Signed-off-by: NJoel Becker <joel.becker@oracle.com>
      6d98c3cc
  6. 16 7月, 2010 1 次提交
  7. 19 5月, 2010 1 次提交
  8. 06 5月, 2010 1 次提交
  9. 24 3月, 2010 1 次提交
  10. 26 1月, 2010 1 次提交
  11. 04 12月, 2009 1 次提交
  12. 24 9月, 2009 1 次提交
  13. 04 4月, 2009 9 次提交
  14. 27 2月, 2009 1 次提交
  15. 06 1月, 2009 3 次提交
    • S
      ocfs2/dlm: Fix race during lockres mastery · 7b791d68
      Sunil Mushran 提交于
      dlm_get_lock_resource() is supposed to return a lock resource with a proper
      master. If multiple concurrent threads attempt to lookup the lockres for the
      same lockid while the lock mastery in underway, one or more threads are likely
      to return a lockres without a proper master.
      
      This patch makes the threads wait in dlm_get_lock_resource() while the mastery
      is underway, ensuring all threads return the lockres with a proper master.
      
      This issue is known to be limited to users using the flock() syscall. For all
      other fs operations, the ocfs2 dlmglue layer serializes the dlm op for each
      lockid.
      
      Users encountering this bug will see flock() return EINVAL and dmesg have the
      following error:
      ERROR: Dlm error "DLM_BADARGS" while calling dlmlock on resource <LOCKID>: bad api args
      Reported-by: NColy Li <coyli@suse.de>
      Signed-off-by: NSunil Mushran <sunil.mushran@oracle.com>
      Signed-off-by: NMark Fasheh <mfasheh@suse.com>
      7b791d68
    • S
      ocfs2/dlm: Fix race in adding/removing lockres' to/from the tracking list · b0d4f817
      Sunil Mushran 提交于
      This patch adds a new lock, dlm->tracking_lock, to protect adding/removing
      lockres' to/from the dlm->tracking_list. We were previously using dlm->spinlock
      for the same, but that proved inadequate as we could be freeing a lockres from
      a context that did not hold that lock. As the new lock only protects this list,
      we can explicitly take it when removing the lockres from the tracking list.
      
      This bug was exposed when testing multiple processes concurrently flock() the
      same file.
      Signed-off-by: NSunil Mushran <sunil.mushran@oracle.com>
      Signed-off-by: NMark Fasheh <mfasheh@suse.com>
      b0d4f817
    • S
      ocfs2/dlm: Fix a race between migrate request and exit domain · 2b832564
      Sunil Mushran 提交于
      Patch address a racing migrate request message and an exit domain message.
      Instead of blocking exit domains for the duration of the migrate, we ignore
      failure to deliver that message. This is because an exiting domain should
      not have any active locks and thus has no role to play in the migration.
      Signed-off-by: NSunil Mushran <sunil.mushran@oracle.com>
      Signed-off-by: NMark Fasheh <mfasheh@suse.com>
      2b832564
  16. 08 7月, 2008 1 次提交
  17. 18 4月, 2008 5 次提交
  18. 11 3月, 2008 3 次提交
  19. 04 3月, 2008 1 次提交
  20. 28 11月, 2007 1 次提交
  21. 20 7月, 2007 1 次提交
    • P
      mm: Remove slab destructors from kmem_cache_create(). · 20c2df83
      Paul Mundt 提交于
      Slab destructors were no longer supported after Christoph's
      c59def9f change. They've been
      BUGs for both slab and slub, and slob never supported them
      either.
      
      This rips out support for the dtor pointer from kmem_cache_create()
      completely and fixes up every single callsite in the kernel (there were
      about 224, not including the slab allocator definitions themselves,
      or the documentation references).
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      20c2df83
  22. 11 7月, 2007 1 次提交
  23. 27 3月, 2007 1 次提交