From: Junxiao Bi <junxiao.bi@oracle.com>
To: ocfs2-devel@oss.oracle.com
Subject: [Ocfs2-devel] [PATCH] ocfs2/dlm: do not insert a new mle when another process is already migrating
Date: Wed, 30 Dec 2015 13:11:38 +0800 [thread overview]
Message-ID: <5683678A.8080905@oracle.com> (raw)
In-Reply-To: <567CFF92.3060105@huawei.com>
On 12/25/2015 04:34 PM, xuejiufei wrote:
> When two processes are migrating the same lockres,
> dlm_add_migration_mle() return -EEXIST, but insert a new mle in
> hash list. Function dlm_migrate_lockres will detach the ole mle
> and free the new one which is already in hash list, that will
> destroy the list.
>
> Signed-off-by: Jiufei Xue <xuejiufei@huawei.com>
> Reviewed-by: Joseph Qi <joseph.qi@huawei.com>
Looks good.
Reviewed-by: Junxiao Bi <junxiao.bi@oracle.com>
> ---
> fs/ocfs2/dlm/dlmmaster.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/fs/ocfs2/dlm/dlmmaster.c b/fs/ocfs2/dlm/dlmmaster.c
> index 936e11b..753dd9c 100644
> --- a/fs/ocfs2/dlm/dlmmaster.c
> +++ b/fs/ocfs2/dlm/dlmmaster.c
> @@ -2544,7 +2544,7 @@ static int dlm_migrate_lockres(struct dlm_ctxt *dlm,
> }
>
> fail:
> - if (oldmle) {
> + if (ret != -EEXIST && oldmle) {
> /* master is known, detach if not already detached */
> dlm_mle_detach_hb_events(dlm, oldmle);
> dlm_put_mle(oldmle);
> @@ -3141,7 +3141,8 @@ static int dlm_add_migration_mle(struct dlm_ctxt *dlm,
> mlog(0, "tried to migrate %.*s, but some "
> "process beat me to it\n",
> namelen, name);
> - ret = -EEXIST;
> + spin_unlock(&tmp->spinlock);
> + return -EEXIST;
> } else {
> /* bad. 2 NODES are trying to migrate! */
> mlog(ML_ERROR, "migration error mle: "
>
prev parent reply other threads:[~2015-12-30 5:11 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-25 8:34 [Ocfs2-devel] [PATCH] ocfs2/dlm: do not insert a new mle when another process is already migrating xuejiufei
2015-12-30 5:11 ` Junxiao Bi [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5683678A.8080905@oracle.com \
--to=junxiao.bi@oracle.com \
--cc=ocfs2-devel@oss.oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.