[DLM] Update DLM to the latest patch level
Signed-off-by: David Teigland <teigland@redhat.com> Signed-off-by: Steve Whitehouse <swhiteho@redhat.com>
This commit is contained in:

committed by
Steven Whitehouse

parent
ec58002466
commit
901359256b
@@ -215,15 +215,15 @@ static inline int is_master_copy(struct dlm_lkb *lkb)
|
||||
{
|
||||
if (lkb->lkb_flags & DLM_IFL_MSTCPY)
|
||||
DLM_ASSERT(lkb->lkb_nodeid, dlm_print_lkb(lkb););
|
||||
return (lkb->lkb_flags & DLM_IFL_MSTCPY) ? TRUE : FALSE;
|
||||
return (lkb->lkb_flags & DLM_IFL_MSTCPY) ? 1 : 0;
|
||||
}
|
||||
|
||||
static inline int middle_conversion(struct dlm_lkb *lkb)
|
||||
{
|
||||
if ((lkb->lkb_grmode==DLM_LOCK_PR && lkb->lkb_rqmode==DLM_LOCK_CW) ||
|
||||
(lkb->lkb_rqmode==DLM_LOCK_PR && lkb->lkb_grmode==DLM_LOCK_CW))
|
||||
return TRUE;
|
||||
return FALSE;
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int down_conversion(struct dlm_lkb *lkb)
|
||||
@@ -269,7 +269,7 @@ static struct dlm_rsb *create_rsb(struct dlm_ls *ls, char *name, int len)
|
||||
r->res_ls = ls;
|
||||
r->res_length = len;
|
||||
memcpy(r->res_name, name, len);
|
||||
init_MUTEX(&r->res_sem);
|
||||
mutex_init(&r->res_mutex);
|
||||
|
||||
INIT_LIST_HEAD(&r->res_lookup);
|
||||
INIT_LIST_HEAD(&r->res_grantqueue);
|
||||
@@ -712,7 +712,7 @@ static void add_to_waiters(struct dlm_lkb *lkb, int mstype)
|
||||
{
|
||||
struct dlm_ls *ls = lkb->lkb_resource->res_ls;
|
||||
|
||||
down(&ls->ls_waiters_sem);
|
||||
mutex_lock(&ls->ls_waiters_mutex);
|
||||
if (lkb->lkb_wait_type) {
|
||||
log_print("add_to_waiters error %d", lkb->lkb_wait_type);
|
||||
goto out;
|
||||
@@ -721,7 +721,7 @@ static void add_to_waiters(struct dlm_lkb *lkb, int mstype)
|
||||
kref_get(&lkb->lkb_ref);
|
||||
list_add(&lkb->lkb_wait_reply, &ls->ls_waiters);
|
||||
out:
|
||||
up(&ls->ls_waiters_sem);
|
||||
mutex_unlock(&ls->ls_waiters_mutex);
|
||||
}
|
||||
|
||||
static int _remove_from_waiters(struct dlm_lkb *lkb)
|
||||
@@ -745,9 +745,9 @@ static int remove_from_waiters(struct dlm_lkb *lkb)
|
||||
struct dlm_ls *ls = lkb->lkb_resource->res_ls;
|
||||
int error;
|
||||
|
||||
down(&ls->ls_waiters_sem);
|
||||
mutex_lock(&ls->ls_waiters_mutex);
|
||||
error = _remove_from_waiters(lkb);
|
||||
up(&ls->ls_waiters_sem);
|
||||
mutex_unlock(&ls->ls_waiters_mutex);
|
||||
return error;
|
||||
}
|
||||
|
||||
@@ -775,14 +775,14 @@ static int shrink_bucket(struct dlm_ls *ls, int b)
|
||||
int count = 0, found;
|
||||
|
||||
for (;;) {
|
||||
found = FALSE;
|
||||
found = 0;
|
||||
write_lock(&ls->ls_rsbtbl[b].lock);
|
||||
list_for_each_entry_reverse(r, &ls->ls_rsbtbl[b].toss,
|
||||
res_hashchain) {
|
||||
if (!time_after_eq(jiffies, r->res_toss_time +
|
||||
dlm_config.toss_secs * HZ))
|
||||
continue;
|
||||
found = TRUE;
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1027,9 +1027,9 @@ static inline int first_in_list(struct dlm_lkb *lkb, struct list_head *head)
|
||||
struct dlm_lkb *first = list_entry(head->next, struct dlm_lkb,
|
||||
lkb_statequeue);
|
||||
if (lkb->lkb_id == first->lkb_id)
|
||||
return TRUE;
|
||||
return 1;
|
||||
|
||||
return FALSE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Return 1 if the locks' ranges overlap. If the lkb has no range then it is
|
||||
@@ -1038,13 +1038,13 @@ static inline int first_in_list(struct dlm_lkb *lkb, struct list_head *head)
|
||||
static inline int ranges_overlap(struct dlm_lkb *lkb1, struct dlm_lkb *lkb2)
|
||||
{
|
||||
if (!lkb1->lkb_range || !lkb2->lkb_range)
|
||||
return TRUE;
|
||||
return 1;
|
||||
|
||||
if (lkb1->lkb_range[RQ_RANGE_END] < lkb2->lkb_range[GR_RANGE_START] ||
|
||||
lkb1->lkb_range[RQ_RANGE_START] > lkb2->lkb_range[GR_RANGE_END])
|
||||
return FALSE;
|
||||
return 0;
|
||||
|
||||
return TRUE;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Check if the given lkb conflicts with another lkb on the queue. */
|
||||
@@ -1057,9 +1057,9 @@ static int queue_conflict(struct list_head *head, struct dlm_lkb *lkb)
|
||||
if (this == lkb)
|
||||
continue;
|
||||
if (ranges_overlap(lkb, this) && !modes_compat(this, lkb))
|
||||
return TRUE;
|
||||
return 1;
|
||||
}
|
||||
return FALSE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1103,7 +1103,7 @@ static int conversion_deadlock_detect(struct dlm_rsb *rsb, struct dlm_lkb *lkb)
|
||||
continue;
|
||||
|
||||
if (!modes_compat(this, lkb) && !modes_compat(lkb, this))
|
||||
return TRUE;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* if lkb is on the convert queue and is preventing the first
|
||||
@@ -1114,10 +1114,10 @@ static int conversion_deadlock_detect(struct dlm_rsb *rsb, struct dlm_lkb *lkb)
|
||||
if (self && self != first) {
|
||||
if (!modes_compat(lkb, first) &&
|
||||
!queue_conflict(&rsb->res_grantqueue, first))
|
||||
return TRUE;
|
||||
return 1;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1157,7 +1157,7 @@ static int _can_be_granted(struct dlm_rsb *r, struct dlm_lkb *lkb, int now)
|
||||
*/
|
||||
|
||||
if (lkb->lkb_exflags & DLM_LKF_EXPEDITE)
|
||||
return TRUE;
|
||||
return 1;
|
||||
|
||||
/*
|
||||
* A shortcut. Without this, !queue_conflict(grantqueue, lkb) would be
|
||||
@@ -1200,7 +1200,7 @@ 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 TRUE;
|
||||
return 1;
|
||||
|
||||
/*
|
||||
* When using range locks the NOORDER flag is set to avoid the standard
|
||||
@@ -1208,7 +1208,7 @@ static int _can_be_granted(struct dlm_rsb *r, struct dlm_lkb *lkb, int now)
|
||||
*/
|
||||
|
||||
if (lkb->lkb_exflags & DLM_LKF_NOORDER)
|
||||
return TRUE;
|
||||
return 1;
|
||||
|
||||
/*
|
||||
* 6-3: Once in that queue [CONVERTING], a conversion request cannot be
|
||||
@@ -1217,7 +1217,7 @@ static int _can_be_granted(struct dlm_rsb *r, struct dlm_lkb *lkb, int now)
|
||||
*/
|
||||
|
||||
if (!now && conv && first_in_list(lkb, &r->res_convertqueue))
|
||||
return TRUE;
|
||||
return 1;
|
||||
|
||||
/*
|
||||
* 6-4: By default, a new request is immediately granted only if all
|
||||
@@ -1232,7 +1232,7 @@ static int _can_be_granted(struct dlm_rsb *r, struct dlm_lkb *lkb, int now)
|
||||
|
||||
if (now && !conv && list_empty(&r->res_convertqueue) &&
|
||||
list_empty(&r->res_waitqueue))
|
||||
return TRUE;
|
||||
return 1;
|
||||
|
||||
/*
|
||||
* 6-4: Once a lock request is in the queue of ungranted new requests,
|
||||
@@ -1244,7 +1244,7 @@ static int _can_be_granted(struct dlm_rsb *r, struct dlm_lkb *lkb, int now)
|
||||
|
||||
if (!now && !conv && list_empty(&r->res_convertqueue) &&
|
||||
first_in_list(lkb, &r->res_waitqueue))
|
||||
return TRUE;
|
||||
return 1;
|
||||
|
||||
out:
|
||||
/*
|
||||
@@ -1257,7 +1257,7 @@ static int _can_be_granted(struct dlm_rsb *r, struct dlm_lkb *lkb, int now)
|
||||
lkb->lkb_sbflags |= DLM_SBF_DEMOTED;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1308,7 +1308,7 @@ static int grant_pending_convert(struct dlm_rsb *r, int high)
|
||||
|
||||
list_for_each_entry_safe(lkb, s, &r->res_convertqueue, lkb_statequeue) {
|
||||
demoted = is_demoted(lkb);
|
||||
if (can_be_granted(r, lkb, FALSE)) {
|
||||
if (can_be_granted(r, lkb, 0)) {
|
||||
grant_lock_pending(r, lkb);
|
||||
grant_restart = 1;
|
||||
} else {
|
||||
@@ -1333,7 +1333,7 @@ static int grant_pending_wait(struct dlm_rsb *r, int high)
|
||||
struct dlm_lkb *lkb, *s;
|
||||
|
||||
list_for_each_entry_safe(lkb, s, &r->res_waitqueue, lkb_statequeue) {
|
||||
if (can_be_granted(r, lkb, FALSE))
|
||||
if (can_be_granted(r, lkb, 0))
|
||||
grant_lock_pending(r, lkb);
|
||||
else
|
||||
high = max_t(int, lkb->lkb_rqmode, high);
|
||||
@@ -1705,7 +1705,7 @@ static int do_request(struct dlm_rsb *r, struct dlm_lkb *lkb)
|
||||
{
|
||||
int error = 0;
|
||||
|
||||
if (can_be_granted(r, lkb, TRUE)) {
|
||||
if (can_be_granted(r, lkb, 1)) {
|
||||
grant_lock(r, lkb);
|
||||
queue_cast(r, lkb, 0);
|
||||
goto out;
|
||||
@@ -1733,7 +1733,7 @@ static int do_convert(struct dlm_rsb *r, struct dlm_lkb *lkb)
|
||||
|
||||
/* changing an existing lock may allow others to be granted */
|
||||
|
||||
if (can_be_granted(r, lkb, TRUE)) {
|
||||
if (can_be_granted(r, lkb, 1)) {
|
||||
grant_lock(r, lkb);
|
||||
queue_cast(r, lkb, 0);
|
||||
grant_pending_locks(r);
|
||||
@@ -2556,7 +2556,7 @@ static void receive_convert(struct dlm_ls *ls, struct dlm_message *ms)
|
||||
{
|
||||
struct dlm_lkb *lkb;
|
||||
struct dlm_rsb *r;
|
||||
int error, reply = TRUE;
|
||||
int error, reply = 1;
|
||||
|
||||
error = find_lkb(ls, ms->m_remid, &lkb);
|
||||
if (error)
|
||||
@@ -3205,7 +3205,7 @@ void dlm_recover_waiters_pre(struct dlm_ls *ls)
|
||||
{
|
||||
struct dlm_lkb *lkb, *safe;
|
||||
|
||||
down(&ls->ls_waiters_sem);
|
||||
mutex_lock(&ls->ls_waiters_mutex);
|
||||
|
||||
list_for_each_entry_safe(lkb, safe, &ls->ls_waiters, lkb_wait_reply) {
|
||||
log_debug(ls, "pre recover waiter lkid %x type %d flags %x",
|
||||
@@ -3253,7 +3253,7 @@ void dlm_recover_waiters_pre(struct dlm_ls *ls)
|
||||
lkb->lkb_wait_type);
|
||||
}
|
||||
}
|
||||
up(&ls->ls_waiters_sem);
|
||||
mutex_unlock(&ls->ls_waiters_mutex);
|
||||
}
|
||||
|
||||
static int remove_resend_waiter(struct dlm_ls *ls, struct dlm_lkb **lkb_ret)
|
||||
@@ -3261,7 +3261,7 @@ static int remove_resend_waiter(struct dlm_ls *ls, struct dlm_lkb **lkb_ret)
|
||||
struct dlm_lkb *lkb;
|
||||
int rv = 0;
|
||||
|
||||
down(&ls->ls_waiters_sem);
|
||||
mutex_lock(&ls->ls_waiters_mutex);
|
||||
list_for_each_entry(lkb, &ls->ls_waiters, lkb_wait_reply) {
|
||||
if (lkb->lkb_flags & DLM_IFL_RESEND) {
|
||||
rv = lkb->lkb_wait_type;
|
||||
@@ -3270,7 +3270,7 @@ static int remove_resend_waiter(struct dlm_ls *ls, struct dlm_lkb **lkb_ret)
|
||||
break;
|
||||
}
|
||||
}
|
||||
up(&ls->ls_waiters_sem);
|
||||
mutex_unlock(&ls->ls_waiters_mutex);
|
||||
|
||||
if (!rv)
|
||||
lkb = NULL;
|
||||
|
Reference in New Issue
Block a user