Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp977419ybt; Wed, 17 Jun 2020 19:42:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwrLMpG0vm3+yiKSgvVpG+5uGALXQ/gLB88iyPMr1383gg9SDnitMt2MRxSKeNLOSuJuvU4 X-Received: by 2002:a17:906:7212:: with SMTP id m18mr1969791ejk.29.1592448172555; Wed, 17 Jun 2020 19:42:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592448172; cv=none; d=google.com; s=arc-20160816; b=LhvBQcluIOV+VWyHFjPgkuIv5fQUIPZc8288RRx5qP7yVeCm5FjRFKRJBO6Zpvu3an U7HdZhnn/9ic3zF5g5yTgaa3X8RZBE2w1mJifsHpg/AiSRDgOR1RvlP7/CFbz8z9zlJM LjMXReS9dyVWUdgfPDSCZVuYyPZbNMmZ4rH46Cl/as94sT5j5pmkSBvZ895X1MzuGS+T oEO3pSB1vmOQurcUvA7AgA58vFKfJuUaFSCfzQTHMtPrS+DhfYu77Wd6hQztoluyQYRL R2np8fmgdmVKFmbddklZhKSwhpbO67EyYJEFFAsYpsS2KGbQAGGs/aDOgatWs0VFghm2 Mg2A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=8UWc0efAMob6Qec+TRdwQzM7qRb3CJqVIgxvRWcn5aA=; b=RIwbXDwtM920OiQYO02nH20UttwP9eb+AaO9FMVAqWzUTv/55JCkShvEocmVXlPrkO APf59TilN9mRcrufCO696IF9ShGk4zyXL2O1jFWUrv3ZBYHqxxgHK9mgK/0muR8+y59M +wGyWotC3QUDSPGpUXmt7DUfJceX5m5sCyU7P4VV26KaeYjxsbc3+Cn+4mgA9WFwI26b ytCEpsq7Nex4D+s+GXTl25oZb/nLdw2eEwibhOASdRk0Q/+ZEfTqz7+fzhxsUIN5ziZG VV3KQgVD/UqD/d7EntsWi6O++Rl2XXW7RD16MB56o17wzxPYGWH67YVuvtT2GPPAYFfj /KLg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Dx7Yum84; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id jz21si1050031ejb.635.2020.06.17.19.42.30; Wed, 17 Jun 2020 19:42:52 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Dx7Yum84; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729088AbgFRBNR (ORCPT + 99 others); Wed, 17 Jun 2020 21:13:17 -0400 Received: from mail.kernel.org ([198.145.29.99]:40722 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728877AbgFRBMP (ORCPT ); Wed, 17 Jun 2020 21:12:15 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 7F04E20B1F; Thu, 18 Jun 2020 01:12:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1592442735; bh=SQj2NRbSEqIYGQpLgmiIi058rCiMpe/GiKQnx6UPSrU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Dx7Yum849qaqp6kRWl+5A4qxolenYXlHQ7UdkzoWKjuBqOV8gUPqzYUcujdgxHe+2 SbQRBYnaazqQiKzLXSqIG+1Xmxi2XSeOy7DZr2e6+ANhAUWA5Feuf1lWd1JDgvlrcK COOMsUId+IzfX3ScDmvDtr+fIwbf2cLT/xhhlbiE= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Chao Yu , Daeho Jeong , Jaegeuk Kim , Sasha Levin , linux-f2fs-devel@lists.sourceforge.net Subject: [PATCH AUTOSEL 5.7 190/388] f2fs: compress: fix zstd data corruption Date: Wed, 17 Jun 2020 21:04:47 -0400 Message-Id: <20200618010805.600873-190-sashal@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200618010805.600873-1-sashal@kernel.org> References: <20200618010805.600873-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Chao Yu [ Upstream commit 1454c978efbb57b052670d50023f48c759d704ce ] During zstd compression, ZSTD_endStream() may return non-zero value because distination buffer is full, but there is still compressed data remained in intermediate buffer, it means that zstd algorithm can not save at last one block space, let's just writeback raw data instead of compressed one, this can fix data corruption when decompressing incomplete stored compression data. Fixes: 50cfa66f0de0 ("f2fs: compress: support zstd compress algorithm") Signed-off-by: Daeho Jeong Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim Signed-off-by: Sasha Levin --- fs/f2fs/compress.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/fs/f2fs/compress.c b/fs/f2fs/compress.c index c05801758a35..a5b2e72174bb 100644 --- a/fs/f2fs/compress.c +++ b/fs/f2fs/compress.c @@ -369,6 +369,13 @@ static int zstd_compress_pages(struct compress_ctx *cc) return -EIO; } + /* + * there is compressed data remained in intermediate buffer due to + * no more space in cbuf.cdata + */ + if (ret) + return -EAGAIN; + cc->clen = outbuf.pos; return 0; } -- 2.25.1