Lines Matching refs:ls
255 struct lm_lockstruct *ls = &gl->gl_name.ln_sbd->sd_lockstruct;
279 error = dlm_lock(ls->ls_dlm, req, &gl->gl_lksb, lkf, strname,
291 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
303 if (test_bit(DFL_UNMOUNT, &ls->ls_recover_flags))
312 error = dlm_unlock(ls->ls_dlm, gl->gl_lksb.sb_lkid, DLM_LKF_VALBLK,
332 struct lm_lockstruct *ls = &gl->gl_name.ln_sbd->sd_lockstruct;
333 dlm_unlock(ls->ls_dlm, gl->gl_lksb.sb_lkid, DLM_LKF_CANCEL, NULL, gl);
479 static void control_lvb_read(struct lm_lockstruct *ls, uint32_t *lvb_gen,
483 memcpy(lvb_bits, ls->ls_control_lvb, GDLM_LVB_SIZE);
488 static void control_lvb_write(struct lm_lockstruct *ls, uint32_t lvb_gen,
492 memcpy(ls->ls_control_lvb, lvb_bits, GDLM_LVB_SIZE);
494 memcpy(ls->ls_control_lvb, &gen, sizeof(__le32));
505 struct lm_lockstruct *ls = arg;
506 complete(&ls->ls_sync_wait);
511 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
514 error = dlm_unlock(ls->ls_dlm, lksb->sb_lkid, 0, lksb, ls);
521 wait_for_completion(&ls->ls_sync_wait);
534 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
541 error = dlm_lock(ls->ls_dlm, mode, lksb, flags,
543 0, sync_wait_cb, ls, NULL);
550 wait_for_completion(&ls->ls_sync_wait);
564 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
565 return sync_unlock(sdp, &ls->ls_mounted_lksb, "mounted_lock");
570 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
572 &ls->ls_mounted_lksb, "mounted_lock");
577 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
578 return sync_unlock(sdp, &ls->ls_control_lksb, "control_lock");
583 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
585 &ls->ls_control_lksb, "control_lock");
613 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
627 spin_lock(&ls->ls_recover_spin);
637 if (!test_bit(DFL_MOUNT_DONE, &ls->ls_recover_flags) ||
638 test_bit(DFL_FIRST_MOUNT, &ls->ls_recover_flags)) {
639 spin_unlock(&ls->ls_recover_spin);
642 block_gen = ls->ls_recover_block;
643 start_gen = ls->ls_recover_start;
644 spin_unlock(&ls->ls_recover_spin);
674 control_lvb_read(ls, &lvb_gen, ls->ls_lvb_bits);
676 spin_lock(&ls->ls_recover_spin);
677 if (block_gen != ls->ls_recover_block ||
678 start_gen != ls->ls_recover_start) {
680 start_gen, block_gen, ls->ls_recover_block);
681 spin_unlock(&ls->ls_recover_spin);
686 recover_size = ls->ls_recover_size;
699 if (ls->ls_recover_result[i] != LM_RD_SUCCESS)
702 ls->ls_recover_result[i] = 0;
704 if (!test_bit_le(i, ls->ls_lvb_bits + JID_BITMAP_OFFSET))
707 __clear_bit_le(i, ls->ls_lvb_bits + JID_BITMAP_OFFSET);
717 if (!ls->ls_recover_submit[i])
719 if (ls->ls_recover_submit[i] < lvb_gen)
720 ls->ls_recover_submit[i] = 0;
727 if (!ls->ls_recover_submit[i])
729 if (ls->ls_recover_submit[i] < start_gen) {
730 ls->ls_recover_submit[i] = 0;
731 __set_bit_le(i, ls->ls_lvb_bits + JID_BITMAP_OFFSET);
742 spin_unlock(&ls->ls_recover_spin);
745 control_lvb_write(ls, start_gen, ls->ls_lvb_bits);
765 if (test_bit_le(i, ls->ls_lvb_bits + JID_BITMAP_OFFSET)) {
781 spin_lock(&ls->ls_recover_spin);
782 if (ls->ls_recover_block == block_gen &&
783 ls->ls_recover_start == start_gen) {
784 clear_bit(DFL_BLOCK_LOCKS, &ls->ls_recover_flags);
785 spin_unlock(&ls->ls_recover_spin);
790 start_gen, block_gen, ls->ls_recover_block);
791 spin_unlock(&ls->ls_recover_spin);
797 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
803 memset(&ls->ls_mounted_lksb, 0, sizeof(struct dlm_lksb));
804 memset(&ls->ls_control_lksb, 0, sizeof(struct dlm_lksb));
805 memset(&ls->ls_control_lvb, 0, GDLM_LVB_SIZE);
806 ls->ls_control_lksb.sb_lvbptr = ls->ls_control_lvb;
807 init_completion(&ls->ls_sync_wait);
809 set_bit(DFL_BLOCK_LOCKS, &ls->ls_recover_flags);
903 control_lvb_read(ls, &lvb_gen, ls->ls_lvb_bits);
914 spin_lock(&ls->ls_recover_spin);
915 clear_bit(DFL_BLOCK_LOCKS, &ls->ls_recover_flags);
916 set_bit(DFL_MOUNT_DONE, &ls->ls_recover_flags);
917 set_bit(DFL_FIRST_MOUNT, &ls->ls_recover_flags);
918 spin_unlock(&ls->ls_recover_spin);
933 if (!all_jid_bits_clear(ls->ls_lvb_bits)) {
939 spin_lock(&ls->ls_recover_spin);
940 block_gen = ls->ls_recover_block;
941 start_gen = ls->ls_recover_start;
942 mount_gen = ls->ls_recover_mount;
955 ls->ls_recover_flags);
957 spin_unlock(&ls->ls_recover_spin);
966 lvb_gen, ls->ls_recover_flags);
967 spin_unlock(&ls->ls_recover_spin);
975 lvb_gen, ls->ls_recover_flags);
976 spin_unlock(&ls->ls_recover_spin);
980 clear_bit(DFL_BLOCK_LOCKS, &ls->ls_recover_flags);
981 set_bit(DFL_MOUNT_DONE, &ls->ls_recover_flags);
982 memset(ls->ls_recover_submit, 0, ls->ls_recover_size*sizeof(uint32_t));
983 memset(ls->ls_recover_result, 0, ls->ls_recover_size*sizeof(uint32_t));
984 spin_unlock(&ls->ls_recover_spin);
995 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
1000 spin_lock(&ls->ls_recover_spin);
1001 start_gen = ls->ls_recover_start;
1002 block_gen = ls->ls_recover_block;
1004 if (test_bit(DFL_BLOCK_LOCKS, &ls->ls_recover_flags) ||
1005 !test_bit(DFL_MOUNT_DONE, &ls->ls_recover_flags) ||
1006 !test_bit(DFL_FIRST_MOUNT, &ls->ls_recover_flags)) {
1009 start_gen, block_gen, ls->ls_recover_flags);
1010 spin_unlock(&ls->ls_recover_spin);
1023 spin_unlock(&ls->ls_recover_spin);
1026 wait_on_bit(&ls->ls_recover_flags, DFL_DLM_RECOVERY,
1031 clear_bit(DFL_FIRST_MOUNT, &ls->ls_recover_flags);
1032 set_bit(DFL_FIRST_MOUNT_DONE, &ls->ls_recover_flags);
1033 memset(ls->ls_recover_submit, 0, ls->ls_recover_size*sizeof(uint32_t));
1034 memset(ls->ls_recover_result, 0, ls->ls_recover_size*sizeof(uint32_t));
1035 spin_unlock(&ls->ls_recover_spin);
1037 memset(ls->ls_lvb_bits, 0, GDLM_LVB_SIZE);
1038 control_lvb_write(ls, start_gen, ls->ls_lvb_bits);
1062 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
1068 if (!ls->ls_lvb_bits) {
1069 ls->ls_lvb_bits = kzalloc(GDLM_LVB_SIZE, GFP_NOFS);
1070 if (!ls->ls_lvb_bits)
1080 old_size = ls->ls_recover_size;
1095 spin_lock(&ls->ls_recover_spin);
1096 memcpy(submit, ls->ls_recover_submit, old_size * sizeof(uint32_t));
1097 memcpy(result, ls->ls_recover_result, old_size * sizeof(uint32_t));
1098 kfree(ls->ls_recover_submit);
1099 kfree(ls->ls_recover_result);
1100 ls->ls_recover_submit = submit;
1101 ls->ls_recover_result = result;
1102 ls->ls_recover_size = new_size;
1103 spin_unlock(&ls->ls_recover_spin);
1107 static void free_recover_size(struct lm_lockstruct *ls)
1109 kfree(ls->ls_lvb_bits);
1110 kfree(ls->ls_recover_submit);
1111 kfree(ls->ls_recover_result);
1112 ls->ls_recover_submit = NULL;
1113 ls->ls_recover_result = NULL;
1114 ls->ls_recover_size = 0;
1115 ls->ls_lvb_bits = NULL;
1123 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
1129 spin_lock(&ls->ls_recover_spin);
1130 ls->ls_recover_block = ls->ls_recover_start;
1131 set_bit(DFL_DLM_RECOVERY, &ls->ls_recover_flags);
1133 if (!test_bit(DFL_MOUNT_DONE, &ls->ls_recover_flags) ||
1134 test_bit(DFL_FIRST_MOUNT, &ls->ls_recover_flags)) {
1135 spin_unlock(&ls->ls_recover_spin);
1138 set_bit(DFL_BLOCK_LOCKS, &ls->ls_recover_flags);
1139 spin_unlock(&ls->ls_recover_spin);
1148 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
1156 spin_lock(&ls->ls_recover_spin);
1157 if (ls->ls_recover_size < jid + 1) {
1159 jid, ls->ls_recover_block, ls->ls_recover_size);
1160 spin_unlock(&ls->ls_recover_spin);
1164 if (ls->ls_recover_submit[jid]) {
1166 jid, ls->ls_recover_block, ls->ls_recover_submit[jid]);
1168 ls->ls_recover_submit[jid] = ls->ls_recover_block;
1169 spin_unlock(&ls->ls_recover_spin);
1178 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
1184 /* ensure the ls jid arrays are large enough */
1187 spin_lock(&ls->ls_recover_spin);
1188 ls->ls_recover_start = generation;
1190 if (!ls->ls_recover_mount) {
1191 ls->ls_recover_mount = generation;
1192 ls->ls_jid = our_slot - 1;
1195 if (!test_bit(DFL_UNMOUNT, &ls->ls_recover_flags))
1198 clear_bit(DFL_DLM_RECOVERY, &ls->ls_recover_flags);
1200 wake_up_bit(&ls->ls_recover_flags, DFL_DLM_RECOVERY);
1201 spin_unlock(&ls->ls_recover_spin);
1209 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
1216 if (test_bit(DFL_NO_DLM_OPS, &ls->ls_recover_flags))
1220 if (jid == ls->ls_jid)
1223 spin_lock(&ls->ls_recover_spin);
1224 if (test_bit(DFL_FIRST_MOUNT, &ls->ls_recover_flags)) {
1225 spin_unlock(&ls->ls_recover_spin);
1228 if (ls->ls_recover_size < jid + 1) {
1230 jid, ls->ls_recover_size);
1231 spin_unlock(&ls->ls_recover_spin);
1238 ls->ls_recover_result[jid] = result;
1244 if (!test_bit(DFL_UNMOUNT, &ls->ls_recover_flags))
1247 spin_unlock(&ls->ls_recover_spin);
1258 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
1269 spin_lock_init(&ls->ls_recover_spin);
1270 ls->ls_recover_flags = 0;
1271 ls->ls_recover_mount = 0;
1272 ls->ls_recover_start = 0;
1273 ls->ls_recover_block = 0;
1274 ls->ls_recover_size = 0;
1275 ls->ls_recover_submit = NULL;
1276 ls->ls_recover_result = NULL;
1277 ls->ls_lvb_bits = NULL;
1305 &ls->ls_dlm);
1317 free_recover_size(ls);
1318 set_bit(DFL_NO_DLM_OPS, &ls->ls_recover_flags);
1339 ls->ls_first = !!test_bit(DFL_FIRST_MOUNT, &ls->ls_recover_flags);
1346 dlm_release_lockspace(ls->ls_dlm, 2);
1348 free_recover_size(ls);
1355 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
1358 if (test_bit(DFL_NO_DLM_OPS, &ls->ls_recover_flags))
1368 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
1370 if (test_bit(DFL_NO_DLM_OPS, &ls->ls_recover_flags))
1375 spin_lock(&ls->ls_recover_spin);
1376 set_bit(DFL_UNMOUNT, &ls->ls_recover_flags);
1377 spin_unlock(&ls->ls_recover_spin);
1382 if (ls->ls_dlm) {
1383 dlm_release_lockspace(ls->ls_dlm, 2);
1384 ls->ls_dlm = NULL;
1387 free_recover_size(ls);