|
@@ -1750,13 +1750,13 @@ static int dlm_process_recovery_data(struct dlm_ctxt *dlm,
|
|
|
struct dlm_migratable_lockres *mres)
|
|
|
{
|
|
|
struct dlm_migratable_lock *ml;
|
|
|
- struct list_head *queue;
|
|
|
+ struct list_head *queue, *iter;
|
|
|
struct list_head *tmpq = NULL;
|
|
|
struct dlm_lock *newlock = NULL;
|
|
|
struct dlm_lockstatus *lksb = NULL;
|
|
|
int ret = 0;
|
|
|
int i, j, bad;
|
|
|
- struct dlm_lock *lock = NULL;
|
|
|
+ struct dlm_lock *lock;
|
|
|
u8 from = O2NM_MAX_NODES;
|
|
|
unsigned int added = 0;
|
|
|
__be64 c;
|
|
@@ -1791,14 +1791,16 @@ static int dlm_process_recovery_data(struct dlm_ctxt *dlm,
|
|
|
/* MIGRATION ONLY! */
|
|
|
BUG_ON(!(mres->flags & DLM_MRES_MIGRATION));
|
|
|
|
|
|
+ lock = NULL;
|
|
|
spin_lock(&res->spinlock);
|
|
|
for (j = DLM_GRANTED_LIST; j <= DLM_BLOCKED_LIST; j++) {
|
|
|
tmpq = dlm_list_idx_to_ptr(res, j);
|
|
|
- list_for_each_entry(lock, tmpq, list) {
|
|
|
- if (lock->ml.cookie != ml->cookie)
|
|
|
- lock = NULL;
|
|
|
- else
|
|
|
+ list_for_each(iter, tmpq) {
|
|
|
+ lock = list_entry(iter,
|
|
|
+ struct dlm_lock, list);
|
|
|
+ if (lock->ml.cookie == ml->cookie)
|
|
|
break;
|
|
|
+ lock = NULL;
|
|
|
}
|
|
|
if (lock)
|
|
|
break;
|