mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 10:00:17 +00:00
ocfs2: unlock super lock if lockres refresh failed
commit 3278bb748d 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: Junxiao Bi <junxiao.bi@oracle.com>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Mark Fasheh <mfasheh@suse.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
6b34c15c20
commit
8ed82bbebc
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user