diff options
author | David Teigland <teigland@redhat.com> | 2006-11-27 13:18:41 -0600 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2006-11-30 10:37:08 -0500 |
commit | 1babdb453138f17b8ed3d1d5711089c4e2fa5ace (patch) | |
tree | cff82b8349a633cbf770b13522fb180d39f163c2 /fs/dlm/rcom.c | |
parent | aed3255f2267e2d1d95b9cf7f2995ce24e6c873b (diff) | |
download | op-kernel-dev-1babdb453138f17b8ed3d1d5711089c4e2fa5ace.zip op-kernel-dev-1babdb453138f17b8ed3d1d5711089c4e2fa5ace.tar.gz |
[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>
Diffstat (limited to 'fs/dlm/rcom.c')
-rw-r--r-- | fs/dlm/rcom.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/dlm/rcom.c b/fs/dlm/rcom.c index 87b12f7..6ac195c 100644 --- a/fs/dlm/rcom.c +++ b/fs/dlm/rcom.c @@ -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) { struct dlm_rcom *rc; + struct rcom_config *rf; struct dlm_mhandle *mh; 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); 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_result = -ESRCH; + rf = (struct rcom_config *) rc->rc_buf; + rf->rf_lvblen = -1; + dlm_rcom_out(rc); dlm_lowcomms_commit_buffer(mh); |