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

Commit 53ad1c98 authored by David Teigland's avatar David Teigland
Browse files

dlm: fix QUECVT when convert queue is empty



The QUECVT flag should not prevent conversions from
being granted immediately when the convert queue is
empty.

Signed-off-by: default avatarDavid Teigland <teigland@redhat.com>
parent dd775ae2
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -1736,6 +1736,18 @@ static int _can_be_granted(struct dlm_rsb *r, struct dlm_lkb *lkb, int now)
	if (now && conv && !(lkb->lkb_exflags & DLM_LKF_QUECVT))
		return 1;

	/*
	 * Even if the convert is compat with all granted locks,
	 * QUECVT forces it behind other locks on the convert queue.
	 */

	if (now && conv && (lkb->lkb_exflags & DLM_LKF_QUECVT)) {
		if (list_empty(&r->res_convertqueue))
			return 1;
		else
			goto out;
	}

	/*
	 * The NOORDER flag is set to avoid the standard vms rules on grant
	 * order.