mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-10 23:29:46 +00:00
[DLM] fix size of STATUS_REPLY message
When the not_ready routine sends a "fake" status reply with blank status flags, it needs to use the correct size for a normal STATUS_REPLY by including the size of the would-be config parameters. We also fill in the non-existant config parameters with an invalid lvblen value so it's easier to notice if these invalid paratmers are ever being used. Signed-off-by: David Teigland <teigland@redhat.com> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
This commit is contained in:
parent
aed3255f22
commit
1babdb4531
@ -370,9 +370,10 @@ static void receive_rcom_lock_reply(struct dlm_ls *ls, struct dlm_rcom *rc_in)
|
|||||||
static int send_ls_not_ready(int nodeid, struct dlm_rcom *rc_in)
|
static int send_ls_not_ready(int nodeid, struct dlm_rcom *rc_in)
|
||||||
{
|
{
|
||||||
struct dlm_rcom *rc;
|
struct dlm_rcom *rc;
|
||||||
|
struct rcom_config *rf;
|
||||||
struct dlm_mhandle *mh;
|
struct dlm_mhandle *mh;
|
||||||
char *mb;
|
char *mb;
|
||||||
int mb_len = sizeof(struct dlm_rcom);
|
int mb_len = sizeof(struct dlm_rcom) + sizeof(struct rcom_config);
|
||||||
|
|
||||||
mh = dlm_lowcomms_get_buffer(nodeid, mb_len, GFP_KERNEL, &mb);
|
mh = dlm_lowcomms_get_buffer(nodeid, mb_len, GFP_KERNEL, &mb);
|
||||||
if (!mh)
|
if (!mh)
|
||||||
@ -391,6 +392,9 @@ static int send_ls_not_ready(int nodeid, struct dlm_rcom *rc_in)
|
|||||||
rc->rc_id = rc_in->rc_id;
|
rc->rc_id = rc_in->rc_id;
|
||||||
rc->rc_result = -ESRCH;
|
rc->rc_result = -ESRCH;
|
||||||
|
|
||||||
|
rf = (struct rcom_config *) rc->rc_buf;
|
||||||
|
rf->rf_lvblen = -1;
|
||||||
|
|
||||||
dlm_rcom_out(rc);
|
dlm_rcom_out(rc);
|
||||||
dlm_lowcomms_commit_buffer(mh);
|
dlm_lowcomms_commit_buffer(mh);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user