diff options
author | Alexander Aring <aahringo@redhat.com> | 2023-04-21 18:55:52 +0300 |
---|---|---|
committer | David Teigland <teigland@redhat.com> | 2023-04-21 19:46:47 +0300 |
commit | 7a40f1f18a88c6d43c8725d7f45146480a79fde1 (patch) | |
tree | d193e7f6dd2325eb230be4efdcc8b81797b63154 /fs/dlm | |
parent | 1361737f102d898330fd61efa5940c1ee0812da1 (diff) | |
download | linux-7a40f1f18a88c6d43c8725d7f45146480a79fde1.tar.xz |
fs: dlm: stop unnecessarily filling zero ms_extra bytes
Commit 7175e131ebba ("fs: dlm: fix invalid derefence of sb_lvbptr")
fixes an issue when the lkb->lkb_lvbptr set to an dangled pointer and an
followed memcpy() would fail. It was fixed by an additional check of
DLM_LKF_VALBLK flag. The mentioned commit forgot to add an additional check
if DLM_LKF_VALBLK is set for the additional amount of LVB data allocated
in a dlm message. This patch is changing the message allocation to check
additionally if DLM_LKF_VALBLK is set otherwise a dangled lkb->lkb_lvbptr
pointer would allocated zero LVB message data which not gets filled with
actual data.
This patch is however only a cleanup to reduce the amount of zero bytes
transmitted over network as receive_lvb() will only evaluates message LVB
data if DLM_LKF_VALBLK is set.
Signed-off-by: Alexander Aring <aahringo@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>
Diffstat (limited to 'fs/dlm')
-rw-r--r-- | fs/dlm/lock.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/dlm/lock.c b/fs/dlm/lock.c index 1582c8b1404c..debf8a55ad7d 100644 --- a/fs/dlm/lock.c +++ b/fs/dlm/lock.c @@ -3381,7 +3381,7 @@ static int create_message(struct dlm_rsb *r, struct dlm_lkb *lkb, case DLM_MSG_REQUEST_REPLY: case DLM_MSG_CONVERT_REPLY: case DLM_MSG_GRANT: - if (lkb && lkb->lkb_lvbptr) + if (lkb && lkb->lkb_lvbptr && (lkb->lkb_exflags & DLM_LKF_VALBLK)) mb_len += r->res_ls->ls_lvblen; break; } |