From 0fd4e68e137267f9fa1f3d678298955f5e94cecd Mon Sep 17 00:00:00 2001 From: Alex Zhuravlev Date: Tue, 4 Jun 2024 20:59:09 +0300 Subject: [PATCH] EX-9873 obdclass: reset bits after decompression as uncompressed data can be less than chunk/page, but still be visiable to userspace as a part of a sparse file. Signed-off-by: Alex Zhuravlev Change-Id: I4114b0704fb685013f4e03cf2d80ccde2cc8c87f Reviewed-on: https://review.whamcloud.com/c/ex/lustre-release/+/55308 Tested-by: jenkins Tested-by: Andreas Dilger Reviewed-by: Artem Blagodarenko Reviewed-by: Andreas Dilger --- lustre/obdclass/lustre_compr.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lustre/obdclass/lustre_compr.c b/lustre/obdclass/lustre_compr.c index 44b0e9d..c3cdb26d 100644 --- a/lustre/obdclass/lustre_compr.c +++ b/lustre/obdclass/lustre_compr.c @@ -527,14 +527,15 @@ void unmerge_chunk(struct brw_page **pga, struct niobuf_local *lnb, int first, kaddr = kmap_atomic(vmpage); memcpy(kaddr, merged + (i << PAGE_SHIFT), PAGE_SIZE); - kunmap_atomic(kaddr); if (left < PAGE_SIZE) { *pg_len = left; left = 0; + memset(kaddr + *pg_len, 0, PAGE_SIZE - *pg_len); } else { *pg_len = PAGE_SIZE; left -= PAGE_SIZE; } + kunmap_atomic(kaddr); /* we just put data in this page, so set the rc * and disable guard from disk */ -- 1.8.3.1