Lines Matching refs:mres
68 static void dlm_init_migratable_lockres(struct dlm_migratable_lockres *mres,
73 struct dlm_migratable_lockres *mres,
79 struct dlm_migratable_lockres *mres);
882 struct dlm_migratable_lockres *mres; in dlm_request_all_locks_worker() local
893 mres = (struct dlm_migratable_lockres *)data; in dlm_request_all_locks_worker()
930 ret = dlm_send_one_lockres(dlm, res, mres, reco_master, in dlm_request_all_locks_worker()
1113 struct dlm_migratable_lockres *mres, in dlm_send_mig_lockres_msg() argument
1118 u64 mig_cookie = be64_to_cpu(mres->mig_cookie); in dlm_send_mig_lockres_msg()
1119 int mres_total_locks = be32_to_cpu(mres->total_locks); in dlm_send_mig_lockres_msg()
1121 u8 orig_flags = mres->flags, in dlm_send_mig_lockres_msg()
1122 orig_master = mres->master; in dlm_send_mig_lockres_msg()
1124 BUG_ON(mres->num_locks > DLM_MAX_MIGRATABLE_LOCKS); in dlm_send_mig_lockres_msg()
1125 if (!mres->num_locks) in dlm_send_mig_lockres_msg()
1129 (mres->num_locks * sizeof(struct dlm_migratable_lock)); in dlm_send_mig_lockres_msg()
1132 orig_flags = mres->flags; in dlm_send_mig_lockres_msg()
1135 mres->flags |= DLM_MRES_ALL_DONE; in dlm_send_mig_lockres_msg()
1143 ret = o2net_send_message(DLM_MIG_LOCKRES_MSG, dlm->key, mres, in dlm_send_mig_lockres_msg()
1149 "node %u (%s)\n", dlm->name, mres->lockname_len, in dlm_send_mig_lockres_msg()
1150 mres->lockname, ret, send_to, in dlm_send_mig_lockres_msg()
1168 dlm_init_migratable_lockres(mres, res->lockname.name, in dlm_send_mig_lockres_msg()
1174 static void dlm_init_migratable_lockres(struct dlm_migratable_lockres *mres, in dlm_init_migratable_lockres() argument
1180 clear_page(mres); in dlm_init_migratable_lockres()
1181 mres->lockname_len = namelen; in dlm_init_migratable_lockres()
1182 memcpy(mres->lockname, lockname, namelen); in dlm_init_migratable_lockres()
1183 mres->num_locks = 0; in dlm_init_migratable_lockres()
1184 mres->total_locks = cpu_to_be32(total_locks); in dlm_init_migratable_lockres()
1185 mres->mig_cookie = cpu_to_be64(cookie); in dlm_init_migratable_lockres()
1186 mres->flags = flags; in dlm_init_migratable_lockres()
1187 mres->master = master; in dlm_init_migratable_lockres()
1191 struct dlm_migratable_lockres *mres, in dlm_prepare_lvb_for_migration() argument
1205 if (dlm_lvb_is_empty(mres->lvb)) { in dlm_prepare_lvb_for_migration()
1206 memcpy(mres->lvb, lock->lksb->lvb, DLM_LVB_LEN); in dlm_prepare_lvb_for_migration()
1211 if (!memcmp(mres->lvb, lock->lksb->lvb, DLM_LVB_LEN)) in dlm_prepare_lvb_for_migration()
1227 struct dlm_migratable_lockres *mres, int queue) in dlm_add_lock_to_array() argument
1230 int lock_num = mres->num_locks; in dlm_add_lock_to_array()
1232 ml = &(mres->ml[lock_num]); in dlm_add_lock_to_array()
1240 dlm_prepare_lvb_for_migration(lock, mres, queue); in dlm_add_lock_to_array()
1243 mres->num_locks++; in dlm_add_lock_to_array()
1245 if (mres->num_locks == DLM_MAX_MIGRATABLE_LOCKS) in dlm_add_lock_to_array()
1251 struct dlm_migratable_lockres *mres) in dlm_add_dummy_lock() argument
1261 dlm_add_lock_to_array(&dummy, mres, DLM_BLOCKED_LIST); in dlm_add_dummy_lock()
1280 struct dlm_migratable_lockres *mres, in dlm_send_one_lockres() argument
1302 dlm_init_migratable_lockres(mres, res->lockname.name, in dlm_send_one_lockres()
1312 if (!dlm_add_lock_to_array(lock, mres, i)) in dlm_send_one_lockres()
1317 ret = dlm_send_mig_lockres_msg(dlm, mres, send_to, in dlm_send_one_lockres()
1329 dlm_add_dummy_lock(dlm, mres); in dlm_send_one_lockres()
1332 ret = dlm_send_mig_lockres_msg(dlm, mres, send_to, res, total_locks); in dlm_send_one_lockres()
1368 struct dlm_migratable_lockres *mres = in dlm_mig_lockres_handler() local
1380 BUG_ON(!(mres->flags & (DLM_MRES_RECOVERY|DLM_MRES_MIGRATION))); in dlm_mig_lockres_handler()
1382 real_master = mres->master; in dlm_mig_lockres_handler()
1385 BUG_ON(!(mres->flags & DLM_MRES_RECOVERY)); in dlm_mig_lockres_handler()
1389 (mres->flags & DLM_MRES_RECOVERY) ? in dlm_mig_lockres_handler()
1390 "recovery" : "migration", mres->master); in dlm_mig_lockres_handler()
1391 if (mres->flags & DLM_MRES_ALL_DONE) in dlm_mig_lockres_handler()
1403 res = dlm_lookup_lockres(dlm, mres->lockname, mres->lockname_len); in dlm_mig_lockres_handler()
1408 if (mres->flags & DLM_MRES_RECOVERY) { in dlm_mig_lockres_handler()
1415 mres->lockname_len, in dlm_mig_lockres_handler()
1416 mres->lockname); in dlm_mig_lockres_handler()
1421 mres->lockname_len, mres->lockname); in dlm_mig_lockres_handler()
1433 res = dlm_new_lockres(dlm, mres->lockname, mres->lockname_len); in dlm_mig_lockres_handler()
1442 if (mres->flags & DLM_MRES_RECOVERY) in dlm_mig_lockres_handler()
1483 if (mres->master == DLM_LOCK_RES_OWNER_UNKNOWN) { in dlm_mig_lockres_handler()
1485 BUG_ON(!(mres->flags & DLM_MRES_RECOVERY)); in dlm_mig_lockres_handler()
1488 "%.*s\n", mres->lockname_len, mres->lockname); in dlm_mig_lockres_handler()
1527 struct dlm_migratable_lockres *mres; in dlm_mig_lockres_worker() local
1534 mres = (struct dlm_migratable_lockres *)data; in dlm_mig_lockres_worker()
1567 ret = dlm_process_recovery_data(dlm, res, mres); in dlm_mig_lockres_worker()
1573 if ((mres->flags & (DLM_MRES_MIGRATION|DLM_MRES_ALL_DONE)) == in dlm_mig_lockres_worker()
1575 ret = dlm_finish_migration(dlm, res, mres->master); in dlm_mig_lockres_worker()
1780 struct dlm_migratable_lockres *mres) in dlm_process_recovery_data() argument
1794 mlog(0, "running %d locks for this lockres\n", mres->num_locks); in dlm_process_recovery_data()
1795 for (i=0; i<mres->num_locks; i++) { in dlm_process_recovery_data()
1796 ml = &(mres->ml[i]); in dlm_process_recovery_data()
1800 BUG_ON(mres->num_locks != 1); in dlm_process_recovery_data()
1802 dlm->name, mres->lockname_len, mres->lockname, in dlm_process_recovery_data()
1822 BUG_ON(!(mres->flags & DLM_MRES_MIGRATION)); in dlm_process_recovery_data()
1928 if (!dlm_lvb_is_empty(mres->lvb)) { in dlm_process_recovery_data()
1933 memcpy(lksb->lvb, mres->lvb, DLM_LVB_LEN); in dlm_process_recovery_data()
1938 memcpy(res->lvb, mres->lvb, DLM_LVB_LEN); in dlm_process_recovery_data()
1946 memcmp(res->lvb, mres->lvb, DLM_LVB_LEN))) { in dlm_process_recovery_data()
1957 printk("%02x", mres->lvb[i]); in dlm_process_recovery_data()
1962 memcpy(res->lvb, mres->lvb, DLM_LVB_LEN); in dlm_process_recovery_data()
2008 if (mres->flags & DLM_MRES_RECOVERY && in dlm_process_recovery_data()