Commit 8ed82bbe authored by Junxiao Bi's avatar Junxiao Bi Committed by Greg Kroah-Hartman

ocfs2: unlock super lock if lockres refresh failed

commit 3278bb74 upstream.

If lockres refresh failed, the super lock will never be released which
will cause some processes on other cluster nodes hung forever.
Signed-off-by: default avatarJunxiao Bi <junxiao.bi@oracle.com>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Mark Fasheh <mfasheh@suse.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 6b34c15c
......@@ -2545,6 +2545,7 @@ int ocfs2_super_lock(struct ocfs2_super *osb,
* everything is up to the caller :) */
status = ocfs2_should_refresh_lock_res(lockres);
if (status < 0) {
ocfs2_cluster_unlock(osb, lockres, level);
mlog_errno(status);
goto bail;
}
......@@ -2553,8 +2554,10 @@ int ocfs2_super_lock(struct ocfs2_super *osb,
ocfs2_complete_lock_res_refresh(lockres, status);
if (status < 0)
if (status < 0) {
ocfs2_cluster_unlock(osb, lockres, level);
mlog_errno(status);
}
ocfs2_track_lock_refresh(lockres);
}
bail:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment