Lines Matching refs:ls

257 	struct lm_lockstruct *ls = &gl->gl_name.ln_sbd->sd_lockstruct;
279 return dlm_lock(ls->ls_dlm, req, &gl->gl_lksb, lkf, strname,
286 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
300 if (test_bit(DFL_UNMOUNT, &ls->ls_recover_flags)) {
312 error = dlm_unlock(ls->ls_dlm, gl->gl_lksb.sb_lkid, DLM_LKF_VALBLK,
324 struct lm_lockstruct *ls = &gl->gl_name.ln_sbd->sd_lockstruct;
325 dlm_unlock(ls->ls_dlm, gl->gl_lksb.sb_lkid, DLM_LKF_CANCEL, NULL, gl);
471 static void control_lvb_read(struct lm_lockstruct *ls, uint32_t *lvb_gen,
475 memcpy(lvb_bits, ls->ls_control_lvb, GDLM_LVB_SIZE);
480 static void control_lvb_write(struct lm_lockstruct *ls, uint32_t lvb_gen,
484 memcpy(ls->ls_control_lvb, lvb_bits, GDLM_LVB_SIZE);
486 memcpy(ls->ls_control_lvb, &gen, sizeof(__le32));
497 struct lm_lockstruct *ls = arg;
498 complete(&ls->ls_sync_wait);
503 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
506 error = dlm_unlock(ls->ls_dlm, lksb->sb_lkid, 0, lksb, ls);
513 wait_for_completion(&ls->ls_sync_wait);
526 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
533 error = dlm_lock(ls->ls_dlm, mode, lksb, flags,
535 0, sync_wait_cb, ls, NULL);
542 wait_for_completion(&ls->ls_sync_wait);
556 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
557 return sync_unlock(sdp, &ls->ls_mounted_lksb, "mounted_lock");
562 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
564 &ls->ls_mounted_lksb, "mounted_lock");
569 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
570 return sync_unlock(sdp, &ls->ls_control_lksb, "control_lock");
575 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
577 &ls->ls_control_lksb, "control_lock");
605 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
619 spin_lock(&ls->ls_recover_spin);
629 if (!test_bit(DFL_MOUNT_DONE, &ls->ls_recover_flags) ||
630 test_bit(DFL_FIRST_MOUNT, &ls->ls_recover_flags)) {
631 spin_unlock(&ls->ls_recover_spin);
634 block_gen = ls->ls_recover_block;
635 start_gen = ls->ls_recover_start;
636 spin_unlock(&ls->ls_recover_spin);
666 control_lvb_read(ls, &lvb_gen, ls->ls_lvb_bits);
668 spin_lock(&ls->ls_recover_spin);
669 if (block_gen != ls->ls_recover_block ||
670 start_gen != ls->ls_recover_start) {
672 start_gen, block_gen, ls->ls_recover_block);
673 spin_unlock(&ls->ls_recover_spin);
678 recover_size = ls->ls_recover_size;
691 if (ls->ls_recover_result[i] != LM_RD_SUCCESS)
694 ls->ls_recover_result[i] = 0;
696 if (!test_bit_le(i, ls->ls_lvb_bits + JID_BITMAP_OFFSET))
699 __clear_bit_le(i, ls->ls_lvb_bits + JID_BITMAP_OFFSET);
709 if (!ls->ls_recover_submit[i])
711 if (ls->ls_recover_submit[i] < lvb_gen)
712 ls->ls_recover_submit[i] = 0;
719 if (!ls->ls_recover_submit[i])
721 if (ls->ls_recover_submit[i] < start_gen) {
722 ls->ls_recover_submit[i] = 0;
723 __set_bit_le(i, ls->ls_lvb_bits + JID_BITMAP_OFFSET);
734 spin_unlock(&ls->ls_recover_spin);
737 control_lvb_write(ls, start_gen, ls->ls_lvb_bits);
757 if (test_bit_le(i, ls->ls_lvb_bits + JID_BITMAP_OFFSET)) {
773 spin_lock(&ls->ls_recover_spin);
774 if (ls->ls_recover_block == block_gen &&
775 ls->ls_recover_start == start_gen) {
776 clear_bit(DFL_BLOCK_LOCKS, &ls->ls_recover_flags);
777 spin_unlock(&ls->ls_recover_spin);
782 start_gen, block_gen, ls->ls_recover_block);
783 spin_unlock(&ls->ls_recover_spin);
789 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
795 memset(&ls->ls_mounted_lksb, 0, sizeof(struct dlm_lksb));
796 memset(&ls->ls_control_lksb, 0, sizeof(struct dlm_lksb));
797 memset(&ls->ls_control_lvb, 0, GDLM_LVB_SIZE);
798 ls->ls_control_lksb.sb_lvbptr = ls->ls_control_lvb;
799 init_completion(&ls->ls_sync_wait);
801 set_bit(DFL_BLOCK_LOCKS, &ls->ls_recover_flags);
895 control_lvb_read(ls, &lvb_gen, ls->ls_lvb_bits);
906 spin_lock(&ls->ls_recover_spin);
907 clear_bit(DFL_BLOCK_LOCKS, &ls->ls_recover_flags);
908 set_bit(DFL_MOUNT_DONE, &ls->ls_recover_flags);
909 set_bit(DFL_FIRST_MOUNT, &ls->ls_recover_flags);
910 spin_unlock(&ls->ls_recover_spin);
925 if (!all_jid_bits_clear(ls->ls_lvb_bits)) {
931 spin_lock(&ls->ls_recover_spin);
932 block_gen = ls->ls_recover_block;
933 start_gen = ls->ls_recover_start;
934 mount_gen = ls->ls_recover_mount;
947 ls->ls_recover_flags);
949 spin_unlock(&ls->ls_recover_spin);
958 lvb_gen, ls->ls_recover_flags);
959 spin_unlock(&ls->ls_recover_spin);
967 lvb_gen, ls->ls_recover_flags);
968 spin_unlock(&ls->ls_recover_spin);
972 clear_bit(DFL_BLOCK_LOCKS, &ls->ls_recover_flags);
973 set_bit(DFL_MOUNT_DONE, &ls->ls_recover_flags);
974 memset(ls->ls_recover_submit, 0, ls->ls_recover_size*sizeof(uint32_t));
975 memset(ls->ls_recover_result, 0, ls->ls_recover_size*sizeof(uint32_t));
976 spin_unlock(&ls->ls_recover_spin);
987 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
992 spin_lock(&ls->ls_recover_spin);
993 start_gen = ls->ls_recover_start;
994 block_gen = ls->ls_recover_block;
996 if (test_bit(DFL_BLOCK_LOCKS, &ls->ls_recover_flags) ||
997 !test_bit(DFL_MOUNT_DONE, &ls->ls_recover_flags) ||
998 !test_bit(DFL_FIRST_MOUNT, &ls->ls_recover_flags)) {
1001 start_gen, block_gen, ls->ls_recover_flags);
1002 spin_unlock(&ls->ls_recover_spin);
1015 spin_unlock(&ls->ls_recover_spin);
1018 wait_on_bit(&ls->ls_recover_flags, DFL_DLM_RECOVERY,
1023 clear_bit(DFL_FIRST_MOUNT, &ls->ls_recover_flags);
1024 set_bit(DFL_FIRST_MOUNT_DONE, &ls->ls_recover_flags);
1025 memset(ls->ls_recover_submit, 0, ls->ls_recover_size*sizeof(uint32_t));
1026 memset(ls->ls_recover_result, 0, ls->ls_recover_size*sizeof(uint32_t));
1027 spin_unlock(&ls->ls_recover_spin);
1029 memset(ls->ls_lvb_bits, 0, GDLM_LVB_SIZE);
1030 control_lvb_write(ls, start_gen, ls->ls_lvb_bits);
1054 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
1060 if (!ls->ls_lvb_bits) {
1061 ls->ls_lvb_bits = kzalloc(GDLM_LVB_SIZE, GFP_NOFS);
1062 if (!ls->ls_lvb_bits)
1072 old_size = ls->ls_recover_size;
1087 spin_lock(&ls->ls_recover_spin);
1088 memcpy(submit, ls->ls_recover_submit, old_size * sizeof(uint32_t));
1089 memcpy(result, ls->ls_recover_result, old_size * sizeof(uint32_t));
1090 kfree(ls->ls_recover_submit);
1091 kfree(ls->ls_recover_result);
1092 ls->ls_recover_submit = submit;
1093 ls->ls_recover_result = result;
1094 ls->ls_recover_size = new_size;
1095 spin_unlock(&ls->ls_recover_spin);
1099 static void free_recover_size(struct lm_lockstruct *ls)
1101 kfree(ls->ls_lvb_bits);
1102 kfree(ls->ls_recover_submit);
1103 kfree(ls->ls_recover_result);
1104 ls->ls_recover_submit = NULL;
1105 ls->ls_recover_result = NULL;
1106 ls->ls_recover_size = 0;
1107 ls->ls_lvb_bits = NULL;
1115 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
1121 spin_lock(&ls->ls_recover_spin);
1122 ls->ls_recover_block = ls->ls_recover_start;
1123 set_bit(DFL_DLM_RECOVERY, &ls->ls_recover_flags);
1125 if (!test_bit(DFL_MOUNT_DONE, &ls->ls_recover_flags) ||
1126 test_bit(DFL_FIRST_MOUNT, &ls->ls_recover_flags)) {
1127 spin_unlock(&ls->ls_recover_spin);
1130 set_bit(DFL_BLOCK_LOCKS, &ls->ls_recover_flags);
1131 spin_unlock(&ls->ls_recover_spin);
1140 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
1148 spin_lock(&ls->ls_recover_spin);
1149 if (ls->ls_recover_size < jid + 1) {
1151 jid, ls->ls_recover_block, ls->ls_recover_size);
1152 spin_unlock(&ls->ls_recover_spin);
1156 if (ls->ls_recover_submit[jid]) {
1158 jid, ls->ls_recover_block, ls->ls_recover_submit[jid]);
1160 ls->ls_recover_submit[jid] = ls->ls_recover_block;
1161 spin_unlock(&ls->ls_recover_spin);
1170 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
1176 /* ensure the ls jid arrays are large enough */
1179 spin_lock(&ls->ls_recover_spin);
1180 ls->ls_recover_start = generation;
1182 if (!ls->ls_recover_mount) {
1183 ls->ls_recover_mount = generation;
1184 ls->ls_jid = our_slot - 1;
1187 if (!test_bit(DFL_UNMOUNT, &ls->ls_recover_flags))
1190 clear_bit(DFL_DLM_RECOVERY, &ls->ls_recover_flags);
1192 wake_up_bit(&ls->ls_recover_flags, DFL_DLM_RECOVERY);
1193 spin_unlock(&ls->ls_recover_spin);
1201 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
1208 if (test_bit(DFL_NO_DLM_OPS, &ls->ls_recover_flags))
1212 if (jid == ls->ls_jid)
1215 spin_lock(&ls->ls_recover_spin);
1216 if (test_bit(DFL_FIRST_MOUNT, &ls->ls_recover_flags)) {
1217 spin_unlock(&ls->ls_recover_spin);
1220 if (ls->ls_recover_size < jid + 1) {
1222 jid, ls->ls_recover_size);
1223 spin_unlock(&ls->ls_recover_spin);
1230 ls->ls_recover_result[jid] = result;
1236 if (!test_bit(DFL_UNMOUNT, &ls->ls_recover_flags))
1239 spin_unlock(&ls->ls_recover_spin);
1250 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
1261 spin_lock_init(&ls->ls_recover_spin);
1262 ls->ls_recover_flags = 0;
1263 ls->ls_recover_mount = 0;
1264 ls->ls_recover_start = 0;
1265 ls->ls_recover_block = 0;
1266 ls->ls_recover_size = 0;
1267 ls->ls_recover_submit = NULL;
1268 ls->ls_recover_result = NULL;
1269 ls->ls_lvb_bits = NULL;
1297 &ls->ls_dlm);
1309 free_recover_size(ls);
1310 set_bit(DFL_NO_DLM_OPS, &ls->ls_recover_flags);
1331 ls->ls_first = !!test_bit(DFL_FIRST_MOUNT, &ls->ls_recover_flags);
1338 dlm_release_lockspace(ls->ls_dlm, 2);
1340 free_recover_size(ls);
1347 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
1350 if (test_bit(DFL_NO_DLM_OPS, &ls->ls_recover_flags))
1360 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
1362 if (test_bit(DFL_NO_DLM_OPS, &ls->ls_recover_flags))
1367 spin_lock(&ls->ls_recover_spin);
1368 set_bit(DFL_UNMOUNT, &ls->ls_recover_flags);
1369 spin_unlock(&ls->ls_recover_spin);
1374 if (ls->ls_dlm) {
1375 dlm_release_lockspace(ls->ls_dlm, 2);
1376 ls->ls_dlm = NULL;
1379 free_recover_size(ls);