• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/fs/dlm/

Lines Matching refs:ms

86 				    struct dlm_message *ms);
87 static int receive_extralen(struct dlm_message *ms);
910 static int remove_from_waiters_ms(struct dlm_lkb *lkb, struct dlm_message *ms)
915 if (ms != &ls->ls_stub_ms)
917 error = _remove_from_waiters(lkb, ms->m_type);
918 if (ms != &ls->ls_stub_ms)
1074 struct dlm_message *ms)
1086 int len = receive_extralen(ms);
1087 memcpy(lkb->lkb_lvbptr, ms->m_extra, len);
1088 lkb->lkb_lvbseq = ms->m_lvbseq;
1179 struct dlm_message *ms)
1181 set_lvb_lock_pc(r, lkb, ms);
1206 static void munge_demoted(struct dlm_lkb *lkb, struct dlm_message *ms)
1208 if (ms->m_type != DLM_MSG_CONVERT_REPLY) {
1210 lkb->lkb_id, ms->m_type);
1223 static void munge_altmode(struct dlm_lkb *lkb, struct dlm_message *ms)
1225 if (ms->m_type != DLM_MSG_REQUEST_REPLY &&
1226 ms->m_type != DLM_MSG_GRANT) {
1228 lkb->lkb_id, ms->m_type);
2368 struct dlm_message *ms;
2382 ms = (struct dlm_message *) mb;
2384 ms->m_header.h_version = (DLM_HEADER_MAJOR | DLM_HEADER_MINOR);
2385 ms->m_header.h_lockspace = ls->ls_global_id;
2386 ms->m_header.h_nodeid = dlm_our_nodeid();
2387 ms->m_header.h_length = mb_len;
2388 ms->m_header.h_cmd = DLM_MSG;
2390 ms->m_type = mstype;
2393 *ms_ret = ms;
2427 static int send_message(struct dlm_mhandle *mh, struct dlm_message *ms)
2429 dlm_message_out(ms);
2435 struct dlm_message *ms)
2437 ms->m_nodeid = lkb->lkb_nodeid;
2438 ms->m_pid = lkb->lkb_ownpid;
2439 ms->m_lkid = lkb->lkb_id;
2440 ms->m_remid = lkb->lkb_remid;
2441 ms->m_exflags = lkb->lkb_exflags;
2442 ms->m_sbflags = lkb->lkb_sbflags;
2443 ms->m_flags = lkb->lkb_flags;
2444 ms->m_lvbseq = lkb->lkb_lvbseq;
2445 ms->m_status = lkb->lkb_status;
2446 ms->m_grmode = lkb->lkb_grmode;
2447 ms->m_rqmode = lkb->lkb_rqmode;
2448 ms->m_hash = r->res_hash;
2454 ms->m_asts |= AST_BAST;
2456 ms->m_asts |= AST_COMP;
2461 switch (ms->m_type) {
2464 memcpy(ms->m_extra, r->res_name, r->res_length);
2473 memcpy(ms->m_extra, lkb->lkb_lvbptr, r->res_ls->ls_lvblen);
2480 struct dlm_message *ms;
2490 error = create_message(r, lkb, to_nodeid, mstype, &ms, &mh);
2494 send_args(r, lkb, ms);
2496 error = send_message(mh, ms);
2542 struct dlm_message *ms;
2548 error = create_message(r, lkb, to_nodeid, DLM_MSG_GRANT, &ms, &mh);
2552 send_args(r, lkb, ms);
2554 ms->m_result = 0;
2556 error = send_message(mh, ms);
2563 struct dlm_message *ms;
2569 error = create_message(r, NULL, to_nodeid, DLM_MSG_BAST, &ms, &mh);
2573 send_args(r, lkb, ms);
2575 ms->m_bastmode = mode;
2577 error = send_message(mh, ms);
2584 struct dlm_message *ms;
2594 error = create_message(r, NULL, to_nodeid, DLM_MSG_LOOKUP, &ms, &mh);
2598 send_args(r, lkb, ms);
2600 error = send_message(mh, ms);
2612 struct dlm_message *ms;
2618 error = create_message(r, NULL, to_nodeid, DLM_MSG_REMOVE, &ms, &mh);
2622 memcpy(ms->m_extra, r->res_name, r->res_length);
2623 ms->m_hash = r->res_hash;
2625 error = send_message(mh, ms);
2633 struct dlm_message *ms;
2639 error = create_message(r, lkb, to_nodeid, mstype, &ms, &mh);
2643 send_args(r, lkb, ms);
2645 ms->m_result = rv;
2647 error = send_message(mh, ms);
2676 struct dlm_message *ms;
2680 error = create_message(r, NULL, nodeid, DLM_MSG_LOOKUP_REPLY, &ms, &mh);
2684 ms->m_lkid = ms_in->m_lkid;
2685 ms->m_result = rv;
2686 ms->m_nodeid = ret_nodeid;
2688 error = send_message(mh, ms);
2697 static void receive_flags(struct dlm_lkb *lkb, struct dlm_message *ms)
2699 lkb->lkb_exflags = ms->m_exflags;
2700 lkb->lkb_sbflags = ms->m_sbflags;
2702 (ms->m_flags & 0x0000FFFF);
2705 static void receive_flags_reply(struct dlm_lkb *lkb, struct dlm_message *ms)
2707 lkb->lkb_sbflags = ms->m_sbflags;
2709 (ms->m_flags & 0x0000FFFF);
2712 static int receive_extralen(struct dlm_message *ms)
2714 return (ms->m_header.h_length - sizeof(struct dlm_message));
2718 struct dlm_message *ms)
2727 len = receive_extralen(ms);
2728 memcpy(lkb->lkb_lvbptr, ms->m_extra, len);
2734 struct dlm_message *ms)
2736 lkb->lkb_nodeid = ms->m_header.h_nodeid;
2737 lkb->lkb_ownpid = ms->m_pid;
2738 lkb->lkb_remid = ms->m_lkid;
2740 lkb->lkb_rqmode = ms->m_rqmode;
2741 lkb->lkb_bastaddr = (void *) (long) (ms->m_asts & AST_BAST);
2742 lkb->lkb_astaddr = (void *) (long) (ms->m_asts & AST_COMP);
2757 struct dlm_message *ms)
2759 if (lkb->lkb_nodeid != ms->m_header.h_nodeid) {
2761 lkb->lkb_nodeid, ms->m_header.h_nodeid,
2772 if (receive_lvb(ls, lkb, ms))
2775 lkb->lkb_rqmode = ms->m_rqmode;
2776 lkb->lkb_lvbseq = ms->m_lvbseq;
2782 struct dlm_message *ms)
2786 if (receive_lvb(ls, lkb, ms))
2794 static void setup_stub_lkb(struct dlm_ls *ls, struct dlm_message *ms)
2797 lkb->lkb_nodeid = ms->m_header.h_nodeid;
2798 lkb->lkb_remid = ms->m_lkid;
2801 static void receive_request(struct dlm_ls *ls, struct dlm_message *ms)
2811 receive_flags(lkb, ms);
2813 error = receive_request_args(ls, lkb, ms);
2819 namelen = receive_extralen(ms);
2821 error = find_rsb(ls, ms->m_extra, namelen, R_MASTER, &r);
2843 setup_stub_lkb(ls, ms);
2847 static void receive_convert(struct dlm_ls *ls, struct dlm_message *ms)
2853 error = find_lkb(ls, ms->m_remid, &lkb);
2862 receive_flags(lkb, ms);
2863 error = receive_convert_args(ls, lkb, ms);
2879 setup_stub_lkb(ls, ms);
2883 static void receive_unlock(struct dlm_ls *ls, struct dlm_message *ms)
2889 error = find_lkb(ls, ms->m_remid, &lkb);
2898 receive_flags(lkb, ms);
2899 error = receive_unlock_args(ls, lkb, ms);
2913 setup_stub_lkb(ls, ms);
2917 static void receive_cancel(struct dlm_ls *ls, struct dlm_message *ms)
2923 error = find_lkb(ls, ms->m_remid, &lkb);
2927 receive_flags(lkb, ms);
2943 setup_stub_lkb(ls, ms);
2947 static void receive_grant(struct dlm_ls *ls, struct dlm_message *ms)
2953 error = find_lkb(ls, ms->m_remid, &lkb);
2965 receive_flags_reply(lkb, ms);
2967 munge_altmode(lkb, ms);
2968 grant_lock_pc(r, lkb, ms);
2976 static void receive_bast(struct dlm_ls *ls, struct dlm_message *ms)
2982 error = find_lkb(ls, ms->m_remid, &lkb);
2994 queue_bast(r, lkb, ms->m_bastmode);
3001 static void receive_lookup(struct dlm_ls *ls, struct dlm_message *ms)
3005 from_nodeid = ms->m_header.h_nodeid;
3008 len = receive_extralen(ms);
3010 dir_nodeid = dlm_hash2nodeid(ls, ms->m_hash);
3019 error = dlm_dir_lookup(ls, from_nodeid, ms->m_extra, len, &ret_nodeid);
3023 receive_request(ls, ms);
3027 send_lookup_reply(ls, ms, ret_nodeid, error);
3030 static void receive_remove(struct dlm_ls *ls, struct dlm_message *ms)
3034 from_nodeid = ms->m_header.h_nodeid;
3036 len = receive_extralen(ms);
3038 dir_nodeid = dlm_hash2nodeid(ls, ms->m_hash);
3045 dlm_dir_remove_entry(ls, from_nodeid, ms->m_extra, len);
3048 static void receive_purge(struct dlm_ls *ls, struct dlm_message *ms)
3050 do_purge(ls, ms->m_nodeid, ms->m_pid);
3053 static void receive_request_reply(struct dlm_ls *ls, struct dlm_message *ms)
3059 error = find_lkb(ls, ms->m_remid, &lkb);
3078 r->res_nodeid = ms->m_header.h_nodeid;
3083 result = ms->m_result;
3096 receive_flags_reply(lkb, ms);
3097 lkb->lkb_remid = ms->m_lkid;
3099 munge_altmode(lkb, ms);
3103 grant_lock_pc(r, lkb, ms);
3152 struct dlm_message *ms)
3155 switch (ms->m_result) {
3163 receive_flags_reply(lkb, ms);
3165 munge_demoted(lkb, ms);
3172 receive_flags_reply(lkb, ms);
3174 munge_demoted(lkb, ms);
3175 grant_lock_pc(r, lkb, ms);
3181 lkb->lkb_id, ms->m_result);
3185 static void _receive_convert_reply(struct dlm_lkb *lkb, struct dlm_message *ms)
3194 error = remove_from_waiters_ms(lkb, ms);
3198 __receive_convert_reply(r, lkb, ms);
3204 static void receive_convert_reply(struct dlm_ls *ls, struct dlm_message *ms)
3209 error = find_lkb(ls, ms->m_remid, &lkb);
3216 _receive_convert_reply(lkb, ms);
3220 static void _receive_unlock_reply(struct dlm_lkb *lkb, struct dlm_message *ms)
3229 error = remove_from_waiters_ms(lkb, ms);
3235 switch (ms->m_result) {
3237 receive_flags_reply(lkb, ms);
3245 lkb->lkb_id, ms->m_result);
3252 static void receive_unlock_reply(struct dlm_ls *ls, struct dlm_message *ms)
3257 error = find_lkb(ls, ms->m_remid, &lkb);
3264 _receive_unlock_reply(lkb, ms);
3268 static void _receive_cancel_reply(struct dlm_lkb *lkb, struct dlm_message *ms)
3277 error = remove_from_waiters_ms(lkb, ms);
3283 switch (ms->m_result) {
3285 receive_flags_reply(lkb, ms);
3287 if (ms->m_result)
3294 lkb->lkb_id, ms->m_result);
3301 static void receive_cancel_reply(struct dlm_ls *ls, struct dlm_message *ms)
3306 error = find_lkb(ls, ms->m_remid, &lkb);
3313 _receive_cancel_reply(lkb, ms);
3317 static void receive_lookup_reply(struct dlm_ls *ls, struct dlm_message *ms)
3323 error = find_lkb(ls, ms->m_lkid, &lkb);
3338 ret_nodeid = ms->m_nodeid;
3369 struct dlm_message *ms = (struct dlm_message *) hd;
3374 dlm_message_in(ms);
3379 ms->m_type, nodeid, hd->h_lockspace);
3416 switch (ms->m_type) {
3421 receive_request(ls, ms);
3425 receive_convert(ls, ms);
3429 receive_unlock(ls, ms);
3433 receive_cancel(ls, ms);
3439 receive_request_reply(ls, ms);
3443 receive_convert_reply(ls, ms);
3447 receive_unlock_reply(ls, ms);
3451 receive_cancel_reply(ls, ms);
3457 receive_grant(ls, ms);
3461 receive_bast(ls, ms);
3467 receive_lookup(ls, ms);
3471 receive_remove(ls, ms);
3477 receive_lookup_reply(ls, ms);
3483 receive_purge(ls, ms);
3487 log_error(ls, "unknown message type %d", ms->m_type);
4389 struct dlm_message *ms;
4394 DLM_MSG_PURGE, &ms, &mh);
4397 ms->m_nodeid = nodeid;
4398 ms->m_pid = pid;
4400 return send_message(mh, ms);