Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

fs: dlm: constify receive buffer

The dlm receive buffer should be never manipulated as DLM is the last
instance of parsing layer. This patch constify the whole receive buffer
so we are sure it never gets manipulated when it's being parsed.

Signed-off-by: Alexander Aring <aahringo@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>

authored by

Alexander Aring and committed by
David Teigland
11519351 b9d2f6ad

+101 -86
+3 -2
fs/dlm/dir.c
··· 196 196 return error; 197 197 } 198 198 199 - static struct dlm_rsb *find_rsb_root(struct dlm_ls *ls, char *name, int len) 199 + static struct dlm_rsb *find_rsb_root(struct dlm_ls *ls, const char *name, 200 + int len) 200 201 { 201 202 struct dlm_rsb *r; 202 203 uint32_t hash, bucket; ··· 233 232 for rsb's we're master of and whose directory node matches the requesting 234 233 node. inbuf is the rsb name last sent, inlen is the name's length */ 235 234 236 - void dlm_copy_master_names(struct dlm_ls *ls, char *inbuf, int inlen, 235 + void dlm_copy_master_names(struct dlm_ls *ls, const char *inbuf, int inlen, 237 236 char *outbuf, int outlen, int nodeid) 238 237 { 239 238 struct list_head *list;
+2 -2
fs/dlm/dir.h
··· 16 16 int dlm_hash2nodeid(struct dlm_ls *ls, uint32_t hash); 17 17 void dlm_recover_dir_nodeid(struct dlm_ls *ls); 18 18 int dlm_recover_directory(struct dlm_ls *ls, uint64_t seq); 19 - void dlm_copy_master_names(struct dlm_ls *ls, char *inbuf, int inlen, 20 - char *outbuf, int outlen, int nodeid); 19 + void dlm_copy_master_names(struct dlm_ls *ls, const char *inbuf, int inlen, 20 + char *outbuf, int outlen, int nodeid); 21 21 22 22 #endif /* __DIR_DOT_H__ */ 23 23
+58 -51
fs/dlm/lock.c
··· 86 86 static int _request_lock(struct dlm_rsb *r, struct dlm_lkb *lkb); 87 87 static int _cancel_lock(struct dlm_rsb *r, struct dlm_lkb *lkb); 88 88 static void __receive_convert_reply(struct dlm_rsb *r, struct dlm_lkb *lkb, 89 - struct dlm_message *ms, bool local); 90 - static int receive_extralen(struct dlm_message *ms); 89 + const struct dlm_message *ms, bool local); 90 + static int receive_extralen(const struct dlm_message *ms); 91 91 static void do_purge(struct dlm_ls *ls, int nodeid, int pid); 92 92 static void toss_rsb(struct kref *kref); 93 93 ··· 984 984 * . dlm_master_lookup RECOVER_MASTER (fix_master 1, from_master 0) 985 985 */ 986 986 987 - int dlm_master_lookup(struct dlm_ls *ls, int from_nodeid, char *name, int len, 988 - unsigned int flags, int *r_nodeid, int *result) 987 + int dlm_master_lookup(struct dlm_ls *ls, int from_nodeid, const char *name, 988 + int len, unsigned int flags, int *r_nodeid, int *result) 989 989 { 990 990 struct dlm_rsb *r = NULL; 991 991 uint32_t hash, b; ··· 1106 1106 } 1107 1107 } 1108 1108 1109 - void dlm_dump_rsb_name(struct dlm_ls *ls, char *name, int len) 1109 + void dlm_dump_rsb_name(struct dlm_ls *ls, const char *name, int len) 1110 1110 { 1111 1111 struct dlm_rsb *r = NULL; 1112 1112 uint32_t hash, b; ··· 1459 1459 set RESEND and dlm_recover_waiters_post() */ 1460 1460 1461 1461 static int _remove_from_waiters(struct dlm_lkb *lkb, int mstype, 1462 - struct dlm_message *ms) 1462 + const struct dlm_message *ms) 1463 1463 { 1464 1464 struct dlm_ls *ls = lkb->lkb_resource->res_ls; 1465 1465 int overlap_done = 0; ··· 1557 1557 /* Handles situations where we might be processing a "fake" or "local" reply in 1558 1558 which we can't try to take waiters_mutex again. */ 1559 1559 1560 - static int remove_from_waiters_ms(struct dlm_lkb *lkb, struct dlm_message *ms, 1561 - bool local) 1560 + static int remove_from_waiters_ms(struct dlm_lkb *lkb, 1561 + const struct dlm_message *ms, bool local) 1562 1562 { 1563 1563 struct dlm_ls *ls = lkb->lkb_resource->res_ls; 1564 1564 int error; ··· 1800 1800 /* lkb is process copy (pc) */ 1801 1801 1802 1802 static void set_lvb_lock_pc(struct dlm_rsb *r, struct dlm_lkb *lkb, 1803 - struct dlm_message *ms) 1803 + const struct dlm_message *ms) 1804 1804 { 1805 1805 int b; 1806 1806 ··· 1907 1907 } 1908 1908 1909 1909 static void grant_lock_pc(struct dlm_rsb *r, struct dlm_lkb *lkb, 1910 - struct dlm_message *ms) 1910 + const struct dlm_message *ms) 1911 1911 { 1912 1912 set_lvb_lock_pc(r, lkb, ms); 1913 1913 _grant_lock(r, lkb); ··· 1945 1945 lkb->lkb_grmode = DLM_LOCK_NL; 1946 1946 } 1947 1947 1948 - static void munge_altmode(struct dlm_lkb *lkb, struct dlm_message *ms) 1948 + static void munge_altmode(struct dlm_lkb *lkb, const struct dlm_message *ms) 1949 1949 { 1950 1950 if (ms->m_type != cpu_to_le32(DLM_MSG_REQUEST_REPLY) && 1951 1951 ms->m_type != cpu_to_le32(DLM_MSG_GRANT)) { ··· 3641 3641 return send_common_reply(r, lkb, DLM_MSG_CANCEL_REPLY, rv); 3642 3642 } 3643 3643 3644 - static int send_lookup_reply(struct dlm_ls *ls, struct dlm_message *ms_in, 3645 - int ret_nodeid, int rv) 3644 + static int send_lookup_reply(struct dlm_ls *ls, 3645 + const struct dlm_message *ms_in, int ret_nodeid, 3646 + int rv) 3646 3647 { 3647 3648 struct dlm_rsb *r = &ls->ls_local_rsb; 3648 3649 struct dlm_message *ms; ··· 3668 3667 of message, unlike the send side where we can safely send everything about 3669 3668 the lkb for any type of message */ 3670 3669 3671 - static void receive_flags(struct dlm_lkb *lkb, struct dlm_message *ms) 3670 + static void receive_flags(struct dlm_lkb *lkb, const struct dlm_message *ms) 3672 3671 { 3673 3672 lkb->lkb_exflags = le32_to_cpu(ms->m_exflags); 3674 3673 dlm_set_sbflags_val(lkb, le32_to_cpu(ms->m_sbflags)); 3675 3674 dlm_set_dflags_val(lkb, le32_to_cpu(ms->m_flags)); 3676 3675 } 3677 3676 3678 - static void receive_flags_reply(struct dlm_lkb *lkb, struct dlm_message *ms, 3677 + static void receive_flags_reply(struct dlm_lkb *lkb, 3678 + const struct dlm_message *ms, 3679 3679 bool local) 3680 3680 { 3681 3681 if (local) ··· 3686 3684 dlm_set_dflags_val(lkb, le32_to_cpu(ms->m_flags)); 3687 3685 } 3688 3686 3689 - static int receive_extralen(struct dlm_message *ms) 3687 + static int receive_extralen(const struct dlm_message *ms) 3690 3688 { 3691 3689 return (le16_to_cpu(ms->m_header.h_length) - 3692 3690 sizeof(struct dlm_message)); 3693 3691 } 3694 3692 3695 3693 static int receive_lvb(struct dlm_ls *ls, struct dlm_lkb *lkb, 3696 - struct dlm_message *ms) 3694 + const struct dlm_message *ms) 3697 3695 { 3698 3696 int len; 3699 3697 ··· 3721 3719 } 3722 3720 3723 3721 static int receive_request_args(struct dlm_ls *ls, struct dlm_lkb *lkb, 3724 - struct dlm_message *ms) 3722 + const struct dlm_message *ms) 3725 3723 { 3726 3724 lkb->lkb_nodeid = le32_to_cpu(ms->m_header.h_nodeid); 3727 3725 lkb->lkb_ownpid = le32_to_cpu(ms->m_pid); ··· 3743 3741 } 3744 3742 3745 3743 static int receive_convert_args(struct dlm_ls *ls, struct dlm_lkb *lkb, 3746 - struct dlm_message *ms) 3744 + const struct dlm_message *ms) 3747 3745 { 3748 3746 if (lkb->lkb_status != DLM_LKSTS_GRANTED) 3749 3747 return -EBUSY; ··· 3758 3756 } 3759 3757 3760 3758 static int receive_unlock_args(struct dlm_ls *ls, struct dlm_lkb *lkb, 3761 - struct dlm_message *ms) 3759 + const struct dlm_message *ms) 3762 3760 { 3763 3761 if (receive_lvb(ls, lkb, ms)) 3764 3762 return -ENOMEM; ··· 3768 3766 /* We fill in the local-lkb fields with the info that send_xxxx_reply() 3769 3767 uses to send a reply and that the remote end uses to process the reply. */ 3770 3768 3771 - static void setup_local_lkb(struct dlm_ls *ls, struct dlm_message *ms) 3769 + static void setup_local_lkb(struct dlm_ls *ls, const struct dlm_message *ms) 3772 3770 { 3773 3771 struct dlm_lkb *lkb = &ls->ls_local_lkb; 3774 3772 lkb->lkb_nodeid = le32_to_cpu(ms->m_header.h_nodeid); ··· 3778 3776 /* This is called after the rsb is locked so that we can safely inspect 3779 3777 fields in the lkb. */ 3780 3778 3781 - static int validate_message(struct dlm_lkb *lkb, struct dlm_message *ms) 3779 + static int validate_message(struct dlm_lkb *lkb, const struct dlm_message *ms) 3782 3780 { 3783 3781 int from = le32_to_cpu(ms->m_header.h_nodeid); 3784 3782 int error = 0; ··· 3830 3828 return error; 3831 3829 } 3832 3830 3833 - static int receive_request(struct dlm_ls *ls, struct dlm_message *ms) 3831 + static int receive_request(struct dlm_ls *ls, const struct dlm_message *ms) 3834 3832 { 3835 3833 struct dlm_lkb *lkb; 3836 3834 struct dlm_rsb *r; ··· 3909 3907 return error; 3910 3908 } 3911 3909 3912 - static int receive_convert(struct dlm_ls *ls, struct dlm_message *ms) 3910 + static int receive_convert(struct dlm_ls *ls, const struct dlm_message *ms) 3913 3911 { 3914 3912 struct dlm_lkb *lkb; 3915 3913 struct dlm_rsb *r; ··· 3965 3963 return error; 3966 3964 } 3967 3965 3968 - static int receive_unlock(struct dlm_ls *ls, struct dlm_message *ms) 3966 + static int receive_unlock(struct dlm_ls *ls, const struct dlm_message *ms) 3969 3967 { 3970 3968 struct dlm_lkb *lkb; 3971 3969 struct dlm_rsb *r; ··· 4017 4015 return error; 4018 4016 } 4019 4017 4020 - static int receive_cancel(struct dlm_ls *ls, struct dlm_message *ms) 4018 + static int receive_cancel(struct dlm_ls *ls, const struct dlm_message *ms) 4021 4019 { 4022 4020 struct dlm_lkb *lkb; 4023 4021 struct dlm_rsb *r; ··· 4053 4051 return error; 4054 4052 } 4055 4053 4056 - static int receive_grant(struct dlm_ls *ls, struct dlm_message *ms) 4054 + static int receive_grant(struct dlm_ls *ls, const struct dlm_message *ms) 4057 4055 { 4058 4056 struct dlm_lkb *lkb; 4059 4057 struct dlm_rsb *r; ··· 4084 4082 return 0; 4085 4083 } 4086 4084 4087 - static int receive_bast(struct dlm_ls *ls, struct dlm_message *ms) 4085 + static int receive_bast(struct dlm_ls *ls, const struct dlm_message *ms) 4088 4086 { 4089 4087 struct dlm_lkb *lkb; 4090 4088 struct dlm_rsb *r; ··· 4112 4110 return 0; 4113 4111 } 4114 4112 4115 - static void receive_lookup(struct dlm_ls *ls, struct dlm_message *ms) 4113 + static void receive_lookup(struct dlm_ls *ls, const struct dlm_message *ms) 4116 4114 { 4117 4115 int len, error, ret_nodeid, from_nodeid, our_nodeid; 4118 4116 ··· 4132 4130 send_lookup_reply(ls, ms, ret_nodeid, error); 4133 4131 } 4134 4132 4135 - static void receive_remove(struct dlm_ls *ls, struct dlm_message *ms) 4133 + static void receive_remove(struct dlm_ls *ls, const struct dlm_message *ms) 4136 4134 { 4137 4135 char name[DLM_RESNAME_MAXLEN+1]; 4138 4136 struct dlm_rsb *r; ··· 4220 4218 } 4221 4219 } 4222 4220 4223 - static void receive_purge(struct dlm_ls *ls, struct dlm_message *ms) 4221 + static void receive_purge(struct dlm_ls *ls, const struct dlm_message *ms) 4224 4222 { 4225 4223 do_purge(ls, le32_to_cpu(ms->m_nodeid), le32_to_cpu(ms->m_pid)); 4226 4224 } 4227 4225 4228 - static int receive_request_reply(struct dlm_ls *ls, struct dlm_message *ms) 4226 + static int receive_request_reply(struct dlm_ls *ls, 4227 + const struct dlm_message *ms) 4229 4228 { 4230 4229 struct dlm_lkb *lkb; 4231 4230 struct dlm_rsb *r; ··· 4348 4345 } 4349 4346 4350 4347 static void __receive_convert_reply(struct dlm_rsb *r, struct dlm_lkb *lkb, 4351 - struct dlm_message *ms, bool local) 4348 + const struct dlm_message *ms, bool local) 4352 4349 { 4353 4350 /* this is the value returned from do_convert() on the master */ 4354 4351 switch (from_dlm_errno(le32_to_cpu(ms->m_result))) { ··· 4391 4388 } 4392 4389 } 4393 4390 4394 - static void _receive_convert_reply(struct dlm_lkb *lkb, struct dlm_message *ms, 4395 - bool local) 4391 + static void _receive_convert_reply(struct dlm_lkb *lkb, 4392 + const struct dlm_message *ms, bool local) 4396 4393 { 4397 4394 struct dlm_rsb *r = lkb->lkb_resource; 4398 4395 int error; ··· 4415 4412 put_rsb(r); 4416 4413 } 4417 4414 4418 - static int receive_convert_reply(struct dlm_ls *ls, struct dlm_message *ms) 4415 + static int receive_convert_reply(struct dlm_ls *ls, 4416 + const struct dlm_message *ms) 4419 4417 { 4420 4418 struct dlm_lkb *lkb; 4421 4419 int error; ··· 4430 4426 return 0; 4431 4427 } 4432 4428 4433 - static void _receive_unlock_reply(struct dlm_lkb *lkb, struct dlm_message *ms, 4434 - bool local) 4429 + static void _receive_unlock_reply(struct dlm_lkb *lkb, 4430 + const struct dlm_message *ms, bool local) 4435 4431 { 4436 4432 struct dlm_rsb *r = lkb->lkb_resource; 4437 4433 int error; ··· 4467 4463 put_rsb(r); 4468 4464 } 4469 4465 4470 - static int receive_unlock_reply(struct dlm_ls *ls, struct dlm_message *ms) 4466 + static int receive_unlock_reply(struct dlm_ls *ls, 4467 + const struct dlm_message *ms) 4471 4468 { 4472 4469 struct dlm_lkb *lkb; 4473 4470 int error; ··· 4482 4477 return 0; 4483 4478 } 4484 4479 4485 - static void _receive_cancel_reply(struct dlm_lkb *lkb, struct dlm_message *ms, 4486 - bool local) 4480 + static void _receive_cancel_reply(struct dlm_lkb *lkb, 4481 + const struct dlm_message *ms, bool local) 4487 4482 { 4488 4483 struct dlm_rsb *r = lkb->lkb_resource; 4489 4484 int error; ··· 4520 4515 put_rsb(r); 4521 4516 } 4522 4517 4523 - static int receive_cancel_reply(struct dlm_ls *ls, struct dlm_message *ms) 4518 + static int receive_cancel_reply(struct dlm_ls *ls, 4519 + const struct dlm_message *ms) 4524 4520 { 4525 4521 struct dlm_lkb *lkb; 4526 4522 int error; ··· 4535 4529 return 0; 4536 4530 } 4537 4531 4538 - static void receive_lookup_reply(struct dlm_ls *ls, struct dlm_message *ms) 4532 + static void receive_lookup_reply(struct dlm_ls *ls, 4533 + const struct dlm_message *ms) 4539 4534 { 4540 4535 struct dlm_lkb *lkb; 4541 4536 struct dlm_rsb *r; ··· 4615 4608 dlm_put_lkb(lkb); 4616 4609 } 4617 4610 4618 - static void _receive_message(struct dlm_ls *ls, struct dlm_message *ms, 4611 + static void _receive_message(struct dlm_ls *ls, const struct dlm_message *ms, 4619 4612 uint32_t saved_seq) 4620 4613 { 4621 4614 int error = 0, noent = 0; ··· 4751 4744 requestqueue, to processing all the saved messages, to processing new 4752 4745 messages as they arrive. */ 4753 4746 4754 - static void dlm_receive_message(struct dlm_ls *ls, struct dlm_message *ms, 4747 + static void dlm_receive_message(struct dlm_ls *ls, const struct dlm_message *ms, 4755 4748 int nodeid) 4756 4749 { 4757 4750 if (dlm_locking_stopped(ls)) { ··· 4774 4767 /* This is called by dlm_recoverd to process messages that were saved on 4775 4768 the requestqueue. */ 4776 4769 4777 - void dlm_receive_message_saved(struct dlm_ls *ls, struct dlm_message *ms, 4770 + void dlm_receive_message_saved(struct dlm_ls *ls, const struct dlm_message *ms, 4778 4771 uint32_t saved_seq) 4779 4772 { 4780 4773 _receive_message(ls, ms, saved_seq); ··· 4785 4778 standard locking activity) or an RCOM (recovery message sent as part of 4786 4779 lockspace recovery). */ 4787 4780 4788 - void dlm_receive_buffer(union dlm_packet *p, int nodeid) 4781 + void dlm_receive_buffer(const union dlm_packet *p, int nodeid) 4789 4782 { 4790 - struct dlm_header *hd = &p->header; 4783 + const struct dlm_header *hd = &p->header; 4791 4784 struct dlm_ls *ls; 4792 4785 int type = 0; 4793 4786 ··· 5341 5334 5342 5335 /* needs at least dlm_rcom + rcom_lock */ 5343 5336 static int receive_rcom_lock_args(struct dlm_ls *ls, struct dlm_lkb *lkb, 5344 - struct dlm_rsb *r, struct dlm_rcom *rc) 5337 + struct dlm_rsb *r, const struct dlm_rcom *rc) 5345 5338 { 5346 5339 struct rcom_lock *rl = (struct rcom_lock *) rc->rc_buf; 5347 5340 ··· 5391 5384 back the rcom_lock struct we got but with the remid field filled in. */ 5392 5385 5393 5386 /* needs at least dlm_rcom + rcom_lock */ 5394 - int dlm_recover_master_copy(struct dlm_ls *ls, struct dlm_rcom *rc, 5387 + int dlm_recover_master_copy(struct dlm_ls *ls, const struct dlm_rcom *rc, 5395 5388 __le32 *rl_remid, __le32 *rl_result) 5396 5389 { 5397 5390 struct rcom_lock *rl = (struct rcom_lock *) rc->rc_buf; ··· 5475 5468 } 5476 5469 5477 5470 /* needs at least dlm_rcom + rcom_lock */ 5478 - int dlm_recover_process_copy(struct dlm_ls *ls, struct dlm_rcom *rc, 5471 + int dlm_recover_process_copy(struct dlm_ls *ls, const struct dlm_rcom *rc, 5479 5472 uint64_t seq) 5480 5473 { 5481 5474 struct rcom_lock *rl = (struct rcom_lock *) rc->rc_buf;
+7 -7
fs/dlm/lock.h
··· 12 12 #define __LOCK_DOT_H__ 13 13 14 14 void dlm_dump_rsb(struct dlm_rsb *r); 15 - void dlm_dump_rsb_name(struct dlm_ls *ls, char *name, int len); 15 + void dlm_dump_rsb_name(struct dlm_ls *ls, const char *name, int len); 16 16 void dlm_print_lkb(struct dlm_lkb *lkb); 17 - void dlm_receive_message_saved(struct dlm_ls *ls, struct dlm_message *ms, 17 + void dlm_receive_message_saved(struct dlm_ls *ls, const struct dlm_message *ms, 18 18 uint32_t saved_seq); 19 - void dlm_receive_buffer(union dlm_packet *p, int nodeid); 19 + void dlm_receive_buffer(const union dlm_packet *p, int nodeid); 20 20 int dlm_modes_compat(int mode1, int mode2); 21 21 void dlm_put_rsb(struct dlm_rsb *r); 22 22 void dlm_hold_rsb(struct dlm_rsb *r); ··· 25 25 int dlm_lock_recovery_try(struct dlm_ls *ls); 26 26 void dlm_unlock_recovery(struct dlm_ls *ls); 27 27 28 - int dlm_master_lookup(struct dlm_ls *ls, int nodeid, char *name, int len, 29 - unsigned int flags, int *r_nodeid, int *result); 28 + int dlm_master_lookup(struct dlm_ls *ls, int from_nodeid, const char *name, 29 + int len, unsigned int flags, int *r_nodeid, int *result); 30 30 31 31 int dlm_search_rsb_tree(struct rb_root *tree, const void *name, int len, 32 32 struct dlm_rsb **r_ret); ··· 36 36 void dlm_recover_grant(struct dlm_ls *ls); 37 37 int dlm_recover_waiters_post(struct dlm_ls *ls); 38 38 void dlm_recover_waiters_pre(struct dlm_ls *ls); 39 - int dlm_recover_master_copy(struct dlm_ls *ls, struct dlm_rcom *rc, 39 + int dlm_recover_master_copy(struct dlm_ls *ls, const struct dlm_rcom *rc, 40 40 __le32 *rl_remid, __le32 *rl_result); 41 - int dlm_recover_process_copy(struct dlm_ls *ls, struct dlm_rcom *rc, 41 + int dlm_recover_process_copy(struct dlm_ls *ls, const struct dlm_rcom *rc, 42 42 uint64_t seq); 43 43 44 44 int dlm_user_request(struct dlm_ls *ls, struct dlm_user_args *ua, int mode,
+1 -1
fs/dlm/member.c
··· 18 18 #include "midcomms.h" 19 19 #include "lowcomms.h" 20 20 21 - int dlm_slots_version(struct dlm_header *h) 21 + int dlm_slots_version(const struct dlm_header *h) 22 22 { 23 23 if ((le32_to_cpu(h->h_version) & 0x0000FFFF) < DLM_HEADER_SLOTS) 24 24 return 0;
+1 -1
fs/dlm/member.h
··· 18 18 int dlm_recover_members(struct dlm_ls *ls, struct dlm_recover *rv,int *neg_out); 19 19 int dlm_is_removed(struct dlm_ls *ls, int nodeid); 20 20 int dlm_is_member(struct dlm_ls *ls, int nodeid); 21 - int dlm_slots_version(struct dlm_header *h); 21 + int dlm_slots_version(const struct dlm_header *h); 22 22 void dlm_slot_save(struct dlm_ls *ls, struct dlm_rcom *rc, 23 23 struct dlm_member *memb); 24 24 void dlm_slots_copy_out(struct dlm_ls *ls, struct dlm_rcom *rc);
+9 -7
fs/dlm/midcomms.c
··· 499 499 spin_unlock(&node->state_lock); 500 500 } 501 501 502 - static void dlm_receive_buffer_3_2_trace(uint32_t seq, union dlm_packet *p) 502 + static void dlm_receive_buffer_3_2_trace(uint32_t seq, 503 + const union dlm_packet *p) 503 504 { 504 505 switch (p->header.h_cmd) { 505 506 case DLM_MSG: ··· 514 513 } 515 514 } 516 515 517 - static void dlm_midcomms_receive_buffer(union dlm_packet *p, 516 + static void dlm_midcomms_receive_buffer(const union dlm_packet *p, 518 517 struct midcomms_node *node, 519 518 uint32_t seq) 520 519 { ··· 709 708 return 0; 710 709 } 711 710 712 - static int dlm_opts_check_msglen(union dlm_packet *p, uint16_t msglen, int nodeid) 711 + static int dlm_opts_check_msglen(const union dlm_packet *p, uint16_t msglen, 712 + int nodeid) 713 713 { 714 714 int len = msglen; 715 715 ··· 759 757 return 0; 760 758 } 761 759 762 - static void dlm_midcomms_receive_buffer_3_2(union dlm_packet *p, int nodeid) 760 + static void dlm_midcomms_receive_buffer_3_2(const union dlm_packet *p, int nodeid) 763 761 { 764 762 uint16_t msglen = le16_to_cpu(p->header.h_length); 765 763 struct midcomms_node *node; ··· 880 878 return 0; 881 879 } 882 880 883 - static void dlm_midcomms_receive_buffer_3_1(union dlm_packet *p, int nodeid) 881 + static void dlm_midcomms_receive_buffer_3_1(const union dlm_packet *p, int nodeid) 884 882 { 885 883 uint16_t msglen = le16_to_cpu(p->header.h_length); 886 884 struct midcomms_node *node; ··· 979 977 980 978 switch (hd->h_version) { 981 979 case cpu_to_le32(DLM_VERSION_3_1): 982 - dlm_midcomms_receive_buffer_3_1((union dlm_packet *)ptr, nodeid); 980 + dlm_midcomms_receive_buffer_3_1((const union dlm_packet *)ptr, nodeid); 983 981 break; 984 982 case cpu_to_le32(DLM_VERSION_3_2): 985 - dlm_midcomms_receive_buffer_3_2((union dlm_packet *)ptr, nodeid); 983 + dlm_midcomms_receive_buffer_3_2((const union dlm_packet *)ptr, nodeid); 986 984 break; 987 985 default: 988 986 log_print("received invalid version header: %u from node %d, will skip this message",
+11 -9
fs/dlm/rcom.c
··· 221 221 return error; 222 222 } 223 223 224 - static void receive_rcom_status(struct dlm_ls *ls, struct dlm_rcom *rc_in, 224 + static void receive_rcom_status(struct dlm_ls *ls, 225 + const struct dlm_rcom *rc_in, 225 226 uint64_t seq) 226 227 { 227 228 struct dlm_rcom *rc; ··· 284 283 send_rcom_stateless(msg, rc); 285 284 } 286 285 287 - static void receive_sync_reply(struct dlm_ls *ls, struct dlm_rcom *rc_in) 286 + static void receive_sync_reply(struct dlm_ls *ls, const struct dlm_rcom *rc_in) 288 287 { 289 288 spin_lock(&ls->ls_rcom_spin); 290 289 if (!test_bit(LSFL_RCOM_WAIT, &ls->ls_flags) || ··· 334 333 return error; 335 334 } 336 335 337 - static void receive_rcom_names(struct dlm_ls *ls, struct dlm_rcom *rc_in, 336 + static void receive_rcom_names(struct dlm_ls *ls, const struct dlm_rcom *rc_in, 338 337 uint64_t seq) 339 338 { 340 339 struct dlm_rcom *rc; ··· 377 376 return error; 378 377 } 379 378 380 - static void receive_rcom_lookup(struct dlm_ls *ls, struct dlm_rcom *rc_in, 381 - uint64_t seq) 379 + static void receive_rcom_lookup(struct dlm_ls *ls, 380 + const struct dlm_rcom *rc_in, uint64_t seq) 382 381 { 383 382 struct dlm_rcom *rc; 384 383 struct dlm_mhandle *mh; ··· 409 408 send_rcom(mh, rc); 410 409 } 411 410 412 - static void receive_rcom_lookup_reply(struct dlm_ls *ls, struct dlm_rcom *rc_in) 411 + static void receive_rcom_lookup_reply(struct dlm_ls *ls, 412 + const struct dlm_rcom *rc_in) 413 413 { 414 414 dlm_recover_master_reply(ls, rc_in); 415 415 } ··· 471 469 } 472 470 473 471 /* needs at least dlm_rcom + rcom_lock */ 474 - static void receive_rcom_lock(struct dlm_ls *ls, struct dlm_rcom *rc_in, 472 + static void receive_rcom_lock(struct dlm_ls *ls, const struct dlm_rcom *rc_in, 475 473 uint64_t seq) 476 474 { 477 475 __le32 rl_remid, rl_result; ··· 502 500 /* If the lockspace doesn't exist then still send a status message 503 501 back; it's possible that it just doesn't have its global_id yet. */ 504 502 505 - int dlm_send_ls_not_ready(int nodeid, struct dlm_rcom *rc_in) 503 + int dlm_send_ls_not_ready(int nodeid, const struct dlm_rcom *rc_in) 506 504 { 507 505 struct dlm_rcom *rc; 508 506 struct rcom_config *rf; ··· 580 578 /* Called by dlm_recv; corresponds to dlm_receive_message() but special 581 579 recovery-only comms are sent through here. */ 582 580 583 - void dlm_receive_rcom(struct dlm_ls *ls, struct dlm_rcom *rc, int nodeid) 581 + void dlm_receive_rcom(struct dlm_ls *ls, const struct dlm_rcom *rc, int nodeid) 584 582 { 585 583 int lock_size = sizeof(struct dlm_rcom) + sizeof(struct rcom_lock); 586 584 int stop, reply = 0, names = 0, lookup = 0, lock = 0;
+3 -2
fs/dlm/rcom.h
··· 18 18 int last_len, uint64_t seq); 19 19 int dlm_send_rcom_lookup(struct dlm_rsb *r, int dir_nodeid, uint64_t seq); 20 20 int dlm_send_rcom_lock(struct dlm_rsb *r, struct dlm_lkb *lkb, uint64_t seq); 21 - void dlm_receive_rcom(struct dlm_ls *ls, struct dlm_rcom *rc, int nodeid); 22 - int dlm_send_ls_not_ready(int nodeid, struct dlm_rcom *rc_in); 21 + void dlm_receive_rcom(struct dlm_ls *ls, const struct dlm_rcom *rc, 22 + int nodeid); 23 + int dlm_send_ls_not_ready(int nodeid, const struct dlm_rcom *rc_in); 23 24 24 25 #endif 25 26
+1 -1
fs/dlm/recover.c
··· 564 564 return error; 565 565 } 566 566 567 - int dlm_recover_master_reply(struct dlm_ls *ls, struct dlm_rcom *rc) 567 + int dlm_recover_master_reply(struct dlm_ls *ls, const struct dlm_rcom *rc) 568 568 { 569 569 struct dlm_rsb *r; 570 570 int ret_nodeid, new_master;
+1 -1
fs/dlm/recover.h
··· 20 20 int dlm_recover_locks_wait(struct dlm_ls *ls, uint64_t seq); 21 21 int dlm_recover_done_wait(struct dlm_ls *ls, uint64_t seq); 22 22 int dlm_recover_masters(struct dlm_ls *ls, uint64_t seq); 23 - int dlm_recover_master_reply(struct dlm_ls *ls, struct dlm_rcom *rc); 23 + int dlm_recover_master_reply(struct dlm_ls *ls, const struct dlm_rcom *rc); 24 24 int dlm_recover_locks(struct dlm_ls *ls, uint64_t seq); 25 25 void dlm_recovered_lock(struct dlm_rsb *r); 26 26 int dlm_create_root_list(struct dlm_ls *ls);
+2 -1
fs/dlm/requestqueue.c
··· 30 30 * lockspace is enabled on some while still suspended on others. 31 31 */ 32 32 33 - void dlm_add_requestqueue(struct dlm_ls *ls, int nodeid, struct dlm_message *ms) 33 + void dlm_add_requestqueue(struct dlm_ls *ls, int nodeid, 34 + const struct dlm_message *ms) 34 35 { 35 36 struct rq_entry *e; 36 37 int length = le16_to_cpu(ms->m_header.h_length) -
+2 -1
fs/dlm/requestqueue.h
··· 11 11 #ifndef __REQUESTQUEUE_DOT_H__ 12 12 #define __REQUESTQUEUE_DOT_H__ 13 13 14 - void dlm_add_requestqueue(struct dlm_ls *ls, int nodeid, struct dlm_message *ms); 14 + void dlm_add_requestqueue(struct dlm_ls *ls, int nodeid, 15 + const struct dlm_message *ms); 15 16 int dlm_process_requestqueue(struct dlm_ls *ls); 16 17 void dlm_wait_requestqueue(struct dlm_ls *ls); 17 18 void dlm_purge_requestqueue(struct dlm_ls *ls);