Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 49e61f2e authored by Wendy Cheng's avatar Wendy Cheng Committed by Steven Whitehouse
Browse files

[GFS2] Move inode deletion out of blocking_cb



Move inode deletion code out of blocking_cb handle_callback route to
avoid racy conditions that end up blocking lock_dlm1 thread. Fix
bugzilla 286821.

Signed-off-by: default avatarWendy Cheng <wcheng@redhat.com>
Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
parent b4c20166
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
@@ -716,12 +716,8 @@ static void handle_callback(struct gfs2_glock *gl, unsigned int state,
		gl->gl_demote_time = jiffies;
		if (remote && gl->gl_ops->go_type == LM_TYPE_IOPEN &&
		    gl->gl_object) {
			struct inode *inode = igrab(gl->gl_object);
			gfs2_glock_schedule_for_reclaim(gl);
			spin_unlock(&gl->gl_spin);
			if (inode) {
				d_prune_aliases(inode);
				iput(inode);
			}
			return;
		}
	} else if (gl->gl_demote_state != LM_ST_UNLOCKED &&