[Ocfs2-commits] branch, master, updated. ocfs2-1.4.0-194-gb039e12

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Fri Sep 10 11:41:31 PDT 2010


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The ocfs2 filesystem version 1.4".

The branch, master has been updated
       via  b039e1273837897b12b0e346f2ba5982713b15f7 (commit)
       via  3cff70f48aa965e164ba0ac09391548bc4cee1a8 (commit)
       via  f20faccc1b8b53a46ca689f935ac6eb42f6bd8be (commit)
       via  adbd097b5bdc15c999bc04b16c6fba379cd5d3f2 (commit)
       via  28acbe2e4f1d6b7e7bcf119976569d633678b1af (commit)
       via  455e632557b8fee5aca509e4972fcff70f648cf9 (commit)
       via  c3a349f623b5bc9b515d8ac5c470e7647056deba (commit)
       via  65ec88ade8a117cc22d1436c8e609be8e4a4d211 (commit)
       via  ec21749a173f2e8fe9e4d738b5d98f5a0f5372a4 (commit)
       via  68f0510742024af926fdc6f4e7840482aca21b22 (commit)
       via  ba7adb44b39047206991153965f7fb787963c1e7 (commit)
       via  f788717e606371093676b82aafe3aaf64cabd3b1 (commit)
       via  94fe6d5860c8fff9180fd306c914c09a2192af5d (commit)
       via  1f667766cb67ed05b4d706aa82e8ad0b12eaae8b (commit)
      from  a06eb712e0dd1e9fc911b15662eb9447f883712a (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit b039e1273837897b12b0e346f2ba5982713b15f7
Author: Tristan Ye <tristan.ye at oracle.com>
Date:   Fri Sep 10 11:12:28 2010 -0700

    o2net: Disallow o2net accept connection request from itself.
    
    Mainline commit 415cf32c9cdfcc60f34d0ac17f29634e941ba7d2
    
    Currently, o2net_accept_one() is allowed to accept a connection from
    listening node itself, such a fake connection will not be successfully
    established due to no handshake detected afterwards, and later end up
    with triggering connecting worker in a loop.
    
    We're going to fix this by treating such connection request as 'invalid',
    since we've got no chance of requesting connection from a node to itself
    in a OCFS2 cluster.
    
    The fix doesn't hurt user's scan for o2net-listener, it always gets a
    successful connection from userpace.
    
    Signed-off-by: Tristan Ye <tristan.ye at oracle.com>
    Acked-by: Sunil Mushran <sunil.mushran at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 3cff70f48aa965e164ba0ac09391548bc4cee1a8
Author: Wengang Wang <wen.gang.wang at oracle.com>
Date:   Fri Sep 10 11:14:41 2010 -0700

    ocfs2/dlm: remove potential deadlock -V3
    
    Mainline commit b11f1f1ab73fd358b1b734a9427744802202ba68
    
    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: Wengang Wang <wen.gang.wang at oracle.com>
    Cc: stable at kernel.org
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit f20faccc1b8b53a46ca689f935ac6eb42f6bd8be
Author: Wengang Wang <wen.gang.wang at oracle.com>
Date:   Fri Sep 10 11:15:02 2010 -0700

    ocfs2/dlm: avoid incorrect bit set in refmap on recovery master
    
    Mainline commit a524812b7eaa7783d7811198921100f079034e61
    
    In the following situation, there remains an incorrect bit in refmap on the
    recovery master. Finally the recovery master will fail at purging the lockres
    due to the incorrect bit in refmap.
    
    1) node A has no interest on lockres A any longer, so it is purging it.
    2) the owner of lockres A is node B, so node A is sending de-ref message
    to node B.
    3) at this time, node B crashed. node C becomes the recovery master. it recovers
    lockres A(because the master is the dead node B).
    4) node A migrated lockres A to node C with a refbit there.
    5) node A failed to send de-ref message to node B because it crashed. The failure
    is ignored. no other action is done for lockres A any more.
    
    For mormal, re-send the deref message to it to recovery master can fix it. Well,
    ignoring the failure of deref to the original master and not recovering the lockres
    to recovery master has the same effect. And the later is simpler.
    
    Signed-off-by: Wengang Wang <wen.gang.wang at oracle.com>
    Acked-by: Srinivas Eeda <srinivas.eeda at oracle.com>
    Cc: stable at kernel.org
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit adbd097b5bdc15c999bc04b16c6fba379cd5d3f2
Author: Srinivas Eeda <srinivas.eeda at oracle.com>
Date:   Fri Sep 10 11:15:20 2010 -0700

    ocfs2 fix o2dlm dlm run purgelist (rev 3)
    
    Mainline commit 7beaf243787f85a2ef9213ccf13ab4a243283fde
    
    This patch fixes two problems in dlm_run_purgelist
    
    1. If a lockres is found to be in use, dlm_run_purgelist keeps trying to purge
    the same lockres instead of trying the next lockres.
    
    2. When a lockres is found unused, dlm_run_purgelist releases lockres spinlock
    before setting DLM_LOCK_RES_DROPPING_REF and calls dlm_purge_lockres.
    spinlock is reacquired but in this window lockres can get reused. This leads
    to BUG.
    
    This patch modifies dlm_run_purgelist to skip lockres if it's in use and purge
     next lockres. It also sets DLM_LOCK_RES_DROPPING_REF before releasing the
    lockres spinlock protecting it from getting reused.
    
    Signed-off-by: Srinivas Eeda <srinivas.eeda at oracle.com>
    Acked-by: Sunil Mushran <sunil.mushran at oracle.com>
    Cc: stable at kernel.org
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 28acbe2e4f1d6b7e7bcf119976569d633678b1af
Author: Wengang Wang <wen.gang.wang at oracle.com>
Date:   Fri Sep 10 11:15:51 2010 -0700

    ocfs2/dlm: fix a dead lock
    
    Mainline commit 6d98c3ccb52f692f1a60339dde7c700686a5568b
    
    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: Wengang Wang <wen.gang.wang at oracle.com>
    Cc: stable at kernel.org
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 455e632557b8fee5aca509e4972fcff70f648cf9
Author: Wengang Wang <wen.gang.wang at oracle.com>
Date:   Fri Sep 10 11:16:14 2010 -0700

    ocfs2/dlm: Remove BUG_ON from migration in the rare case of a down node
    
    Mainline commit a39953dd95ff10e311083d94f4f95c348cb22464
    
    For migration, we are waiting for DLM_LOCK_RES_MIGRATING flag to be set
    before sending DLM_MIG_LOCKRES_MSG message to the target. We are using
    dlm_migration_can_proceed() for that purpose.  However, if the node is
    down, dlm_migration_can_proceed() will also return "go ahead".  In this
    rare case, the DLM_LOCK_RES_MIGRATING flag might not be set yet. Remove
    the BUG_ON() that trips over this condition.
    
    Signed-off-by: Wengang Wang <wen.gang.wang at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit c3a349f623b5bc9b515d8ac5c470e7647056deba
Author: Wengang Wang <wen.gang.wang at oracle.com>
Date:   Fri Sep 10 11:28:32 2010 -0700

    ocfs2/dlm: don't access beyond bitmap size
    
    Mainline commit f471c9df922a80ca9af1d9a490b4aab3f990ec19
    
    dlm->recovery_map is defined as
            unsigned long recovery_map[BITS_TO_LONGS(O2NM_MAX_NODES)];
    
    We should treat O2NM_MAX_NODES as the bit map size in bits.
    This patches fixes a bit operation that takes O2NM_MAX_NODES + 1 as bitmap size.
    
    Signed-off-by: Wengang Wang <wen.gang.wang at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 65ec88ade8a117cc22d1436c8e609be8e4a4d211
Author: Julia Lawall <julia at diku.dk>
Date:   Fri Sep 10 11:16:26 2010 -0700

    fs/ocfs2/dlm: Add missing spin_unlock
    
    Mainline commit 6469272c350872980891dbe38e81c936c43f2d9b
    
    Add a spin_unlock missing on the error path.  Unlock as in the other code
    that leads to the leave label.
    
    The semantic match that finds this problem is as follows:
    (http://coccinelle.lip6.fr/)
    
    // <smpl>
    @@
    expression E1;
    @@
    
    * spin_lock(E1,...);
      <+... when != E1
      if (...) {
        ... when != E1
    *   return ...;
      }
      ...+>
    * spin_unlock(E1,...);
    // </smpl>
    
    Signed-off-by: Julia Lawall <julia at diku.dk>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit ec21749a173f2e8fe9e4d738b5d98f5a0f5372a4
Author: Wengang Wang <wen.gang.wang at oracle.com>
Date:   Fri Sep 10 11:16:30 2010 -0700

    ocfs2:dlm: avoid dlm->ast_lock lockres->spinlock dependency break
    
    Mainline commit d9ef75221a6247b758e1d7e18edb661996e4b7cf
    
    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: Wengang Wang <wen.gang.wang at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 68f0510742024af926fdc6f4e7840482aca21b22
Author: Julia Lawall <julia at diku.dk>
Date:   Fri Sep 10 11:16:35 2010 -0700

    fs/ocfs2/dlm: Use kstrdup
    
    Mainline commit 316ce2ba8e74a7bb9153b9f93adc883cb1ceb9fd
    
    Use kstrdup when the goal of an allocation is copy a string into the
    allocated region.
    
    The semantic patch that makes this change is as follows:
    (http://coccinelle.lip6.fr/)
    
    // <smpl>
    @@
    expression from,to;
    expression flag,E1,E2;
    statement S;
    @@
    
    -  to = kmalloc(strlen(from) + 1,flag);
    +  to = kstrdup(from, flag);
       ... when != \(from = E1 \| to = E1 \)
       if (to==NULL || ...) S
       ... when != \(from = E2 \| to = E2 \)
    -  strcpy(to, from);
    // </smpl>
    
    Signed-off-by: Julia Lawall <julia at diku.dk>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit ba7adb44b39047206991153965f7fb787963c1e7
Author: Julia Lawall <julia at diku.dk>
Date:   Fri Sep 10 11:16:39 2010 -0700

    fs/ocfs2/dlm: Drop memory allocation cast
    
    Mainline commit 3914ed0cec6532ab4feb202424fc95ad05024497
    
    Drop cast on the result of kmalloc and similar functions.
    
    The semantic patch that makes this change is as follows:
    (http://coccinelle.lip6.fr/)
    
    // <smpl>
    @@
    type T;
    @@
    
    - (T *)
      (\(kmalloc\|kzalloc\|kcalloc\|kmem_cache_alloc\|kmem_cache_zalloc\|
       kmem_cache_alloc_node\|kmalloc_node\|kzalloc_node\)(...))
    // </smpl>
    
    Signed-off-by: Julia Lawall <julia at diku.dk>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit f788717e606371093676b82aafe3aaf64cabd3b1
Author: Sunil Mushran <sunil.mushran at oracle.com>
Date:   Fri Sep 10 11:29:59 2010 -0700

    ocfs2/dlm: Make o2dlm domain join/leave messages KERN_NOTICE
    
    Mainline commit 5c80d4c9e5489d5930412add87501702fe5f93fb
    
    o2dlm join and leave messages are more than informational as they are
    required for debugging locking issues. This patch changes them from
    KERN_INFO to KERN_NOTICE.
    
    Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 94fe6d5860c8fff9180fd306c914c09a2192af5d
Author: Srinivas Eeda <srinivas.eeda at oracle.com>
Date:   Fri Sep 10 11:16:49 2010 -0700

    o2net: log socket state changes
    
    Mainline commit 23fd9abdc8f63c72fe3324e83d454ccecedaec37
    
    This patch logs socket state changes that lead to socket shutdown.
    
    Signed-off-by: Srinivas Eeda <srinivas.eeda at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 1f667766cb67ed05b4d706aa82e8ad0b12eaae8b
Author: Srinivas Eeda <srinivas.eeda at oracle.com>
Date:   Fri Sep 10 11:16:54 2010 -0700

    ocfs2: Fix a race in o2dlm lockres mastery
    
    Mainline commit 14741472a05245ed5778aa0aec055e1f920b6ef8
    
    In o2dlm, the master of a lock resource keeps a map of all interested
    nodes.  This prevents the master from purging the resource before an
    interested node can create a lock.
    
    A race between the mastery thread and the mastery handler allowed an
    interested node to discover who the master is without informing the
    master directly.  This is easily fixed by holding the dlm spinlock a
    little longer in the mastery handler.
    
    Signed-off-by: Srinivas Eeda <srinivas.eeda at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

-----------------------------------------------------------------------

Summary of changes:
 fs/ocfs2/cluster/tcp.c     |   20 +++++--
 fs/ocfs2/dlm/dlmast.c      |    4 +-
 fs/ocfs2/dlm/dlmcommon.h   |    2 +
 fs/ocfs2/dlm/dlmdomain.c   |   11 ++--
 fs/ocfs2/dlm/dlmlock.c     |    2 +-
 fs/ocfs2/dlm/dlmmaster.c   |   53 ++++++++----------
 fs/ocfs2/dlm/dlmrecovery.c |   24 ++++-----
 fs/ocfs2/dlm/dlmthread.c   |  130 ++++++++++++++++++++++----------------------
 8 files changed, 125 insertions(+), 121 deletions(-)


hooks/post-receive
-- 
The ocfs2 filesystem version 1.4



More information about the Ocfs2-commits mailing list