Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp492642pxb; Wed, 27 Jan 2021 12:55:24 -0800 (PST) X-Google-Smtp-Source: ABdhPJxjp92VIlfjlx/o8veUKqURRVkOcPUsxZsaZGe/1XKYsjGZDcDKDCVkLtfe4vT89AWS+u+a X-Received: by 2002:a17:907:2651:: with SMTP id ar17mr7952209ejc.98.1611780924655; Wed, 27 Jan 2021 12:55:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1611780924; cv=none; d=google.com; s=arc-20160816; b=LmJg0fUnq40+rabeBvjD+hjfZ5h/b0w0W2hdlO41/NQbkmW15cu6AfW3Aqzr/aM/X1 VgvDHtThoIlTwsfiXhuBkaoASAMA7YzNvWGGfvQvONZ82Xner3Tpv67n2ONRWLkIE8nP jgL81cUOCiwMq/OOKv4TvciT0ANjSHUNn8/g0mzo+uCjd6ekfYDW2+4hU/g/NYrZo6pF +GQ4tQ5f8XKEk5qsqYWsLxID+/PLWSmWcRY0A0ZiesWVUCFuflJ6iu9u0ATwRyBAxyAU K4/eravdhhRofFaNApbZprNZxo3JTMz490OOYp9FdBOKlpIyEPj30mRfhma+aeUBHgjc 3JUQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=yX2rWUK6PvWdD0i6mM/lXwXTdX5UEd5DKVJRX2z7up4=; b=aBsd6lDm1Q9xjbAKIBNhTl1C6c/l4SwFZ6c1qNKQvOXH7f6uQWhZ/+z/onb9QNculO eVbx9LNdjlvNqCuZAZa7ZPOEZTMUppSKHB+vyjNFgNGGxgBFLGWCJrUYCkcRAQHGN5jy QhVf81RUQqyeIuQpHfTLOXffw/iZuwVsCxCaKXR1JQ8fznG4UVnCOZNiJfuk+CO6TorG GDCtC+u5bdVtmHCUiUOBnaZNIaJt7eKdFT4Q6Gdx84mt7c7acaRFk3dnmMpvvrLIJcTa YwA4HrLy3ri0SrodWsbgIGE7y19nkHx7kmnu3Q6Jf6J7T274z9EslXQgVsbEj7+h1NRe dM6Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=f76QWS5j; 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 dk25si1504909edb.583.2021.01.27.12.54.59; Wed, 27 Jan 2021 12:55:24 -0800 (PST) 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=k20201202 header.b=f76QWS5j; 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 S237689AbhA0D6N (ORCPT + 99 others); Tue, 26 Jan 2021 22:58:13 -0500 Received: from mail.kernel.org ([198.145.29.99]:49314 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2405343AbhA0BpU (ORCPT ); Tue, 26 Jan 2021 20:45:20 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id AA88A2054F; Wed, 27 Jan 2021 01:44:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1611711878; bh=lBJ53K92hVK0EqvlqjcltcmGpAoUSsWhlw7eSkvYepk=; h=From:To:Cc:Subject:Date:From; b=f76QWS5jEXBltyE8jd6AavYiRTRZn17b4d4jWDQgMP1InELKx+JnuzOcXz48lfSSj PgaXhEb85GCQI8a7nK/Tc/5rQQ7oMinj5AbzDJn8KjfsgaYtnKnyF5sEHt0X/bpnWI inNsv7NKHuw5aXHUoVrbQ8MtU0ozBVbL2js8eSlS/jZkejqvkMWUxZcl/w+foVGCGv lb86fwJiCHNuIVHHN2TL5YGsFhRJTWZSAxFVGQEM+gW8YXDdgwN2WabOV2aUm06R4y 65ab/9S2eMm6K35NaxwVmP8oFQxJz1zlbY1WYTG5hIk3PbXvBu9IONSqZtvO3+V9gI 64dBDUN9tOWuA== From: Jaegeuk Kim To: linux-kernel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, kernel-team@android.com Cc: Jaegeuk Kim , stable@vger.kernel.org Subject: [PATCH] f2fs: flush data when enabling checkpoint back Date: Tue, 26 Jan 2021 17:44:34 -0800 Message-Id: <20210127014434.3431893-1-jaegeuk@kernel.org> X-Mailer: git-send-email 2.30.0.280.ga3ce27912f-goog MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org During checkpoint=disable period, f2fs bypasses all the synchronous IOs such as sync and fsync. So, when enabling it back, we must flush all of them in order to keep the data persistent. Otherwise, suddern power-cut right after enabling checkpoint will cause data loss. Fixes: 4354994f097d ("f2fs: checkpoint disabling") Cc: stable@vger.kernel.org Signed-off-by: Jaegeuk Kim --- fs/f2fs/super.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c index 359cc5a2f8f5..073b51af62c8 100644 --- a/fs/f2fs/super.c +++ b/fs/f2fs/super.c @@ -1887,6 +1887,9 @@ static int f2fs_disable_checkpoint(struct f2fs_sb_info *sbi) static void f2fs_enable_checkpoint(struct f2fs_sb_info *sbi) { + /* we should flush all the data to keep data consistency */ + sync_inodes_sb(sbi->sb); + down_write(&sbi->gc_lock); f2fs_dirty_to_prefree(sbi); -- 2.30.0.280.ga3ce27912f-goog