From nobody Mon Sep 28 15:34:34 2026 Received: from mail-pg1-f178.google.com (mail-pg1-f178.google.com [209.85.215.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 88D1D3BBFAB for ; Thu, 20 Aug 2026 07:14:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787210094; cv=none; b=WblCZPhnjsy10pfAGdNP2K0NwxsGEs/5N/m5gLtb4F9WwA0fY+WWy1T1Mey+VUqYq1H8RRhIRaO57yu0UBCBfqkvfeHcrD42Uh4aW5RCkCTjmOTawgkQQ5nvd3To1usU2BdpJqkKBlov9w0lIxuaxRr69IWlUssPP0atrO2LMZw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787210094; c=relaxed/simple; bh=VbayNebcWhf4Tn8klTCkPPNWW9M2CjyNusWREINuBic=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Rtuezgo2eAvuDjUxiush2BG5aS4X2/d1GLfCcgRBUY+MvWeLVyWU3K9XxTXnvCMV9KshZcW0VDBIEdy1shy7/tQtR6lnCmpHX7A7E2rvmCzqwoUZQLTBPpRpqBJVDFbqi+6r1nEKTR/wFZrAd2uUfNdyttjAOjj60KXOR78KDfo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=sqVGUjOR; arc=none smtp.client-ip=209.85.215.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="sqVGUjOR" Received: by mail-pg1-f178.google.com with SMTP id 41be03b00d2f7-c966b9ee9cbso1104354a12.1 for ; Thu, 20 Aug 2026 00:14:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787210090; x=1787814890; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=rKVsXzEdcjeAkZAMt7kUuxma/a9jwFOX0PL7ezELQks=; b=sqVGUjOR3eAhd2+5EI+vHU7aWG0naqNH31FTEgDnPv3rtskDMxXinuownnDFD6Uk/y WIEj0JqjTy7pSFRHSejHnsdZympmWK54VEhOmMwciqgsrpLs7koLJRilIGgwoah5947+ X0fkwiLddIIJG+pY7S/+xMxwNnLkzZeVBReCDBrcBtXeCFJ3GNnDz3htXZdYXr/LlOlO nRme0IwO3TsbPpFHV3pRunrycAxXHgkqlGYUsh00JkfabadSesiORL+HR8PiC1OioJDV brVu3pM4OnQFQ++C2DE4xRucUB9P36MU4kyG5T9k+k1VjhYMBjaVZQF1x1JIfFO1GzX6 P0Uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787210090; x=1787814890; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=rKVsXzEdcjeAkZAMt7kUuxma/a9jwFOX0PL7ezELQks=; b=Ddn6w2/tW0eUmK+8Zt6gbGG/PbTdnxik75bXM/pZejR0H9IGtTWQbbcZr2waH96iFC Go/I4JtFEjQxerTKgN4+xUPThN6ePxrrzjLglwdWze8oT0VSGVAkY2HBwNA+rUcDW14v L9tDyolM/64FIMikzroCGLILmHhKruQ5Ow3ueq4q1GFKbljLkSgY6yIZt1vV9cGDRD2O r1ds6Q8Sg/YrXxGqXFD1Nl+ZsMyKYDM9KuSNObpgjpsloIjb7OueF7f654vMeYEQY4pg WUHqn9wVXejdqNmYC+yOvZl6NzzNXBPkB6VEWm0KTI0+IMCLbZmwNgNMLFGjS+n3UKVP GDEA== X-Forwarded-Encrypted: i=1; AHgh+RpumVY9uPY+dy+EYzrn0+hwMjqJ3Nmupi9Gl/VofPIi1KfFzq5ZHiAtllNvvpa73SBIb69cHQC2xgZdTZA=@vger.kernel.org X-Gm-Message-State: AOJu0YzeWGPw9A7N3YgJI4SRGMY26NdEeGYEd0k0X1iYV+un5WYz9GLh ZeVRTDxbcA4d4fw6hE9n6hnB0JnCOBzBbyzsu9SxZ7xGbu/Fn8AEZFpNKKr6Yw== X-Gm-Gg: AR+sD12qz7jxRU1sIkwKFUyFIyRBEG6smq48Cfi6cY0A5NmxfP45g5H7vBqu+jbVqKn 96Vi/M1queJyqnH8y3V6PCE4M3779UrM24Q/hTgaw7CBgoQiZCgVtbV9g2WM8c5X6rIBpI3NQrY hVdJvppWjrDkSUgYoQMP/KY83jTZWsijAOLxC1QnQC4VHNcjBIqLXcIJahDMIK1XnyTWP3iYTjb nkFW1DXelnGlcWcTEfwgSK2rjAW8ig3+rev0ANTpp+BzbnfWbSkRiFXva0s4G8rgJZaxqqa6FDq suTLgOcDQK4TFtYeP8GOkPXtewocAj/fwZiI9MNza0d7mnCVSSrHuS90Uzpu3WJ6h0QBlmqjp/Z 5RQb5IXrJuQS3VVs0nQ2zyE8QiAs3bZhk/Z8K2smqM6Xjsd16dLAaAvptjqPbRD16T1egfuTg1t ID0zxEqK2yOTZ3DP3+zze2DmThL9x0n+at1DWRKIvEuJq7rLiLKXlxxxhmk7BIN4k1SIt48eH7Q 0BOab8TMdZmI1RYLMQsmmFU X-Received: by 2002:a05:6a00:438e:b0:835:6388:655d with SMTP id d2e1a72fcca58-851d393d954mr18125399b3a.14.1787210090367; Thu, 20 Aug 2026 00:14:50 -0700 (PDT) Received: from qiwenjie-ThinkCentre-M760t.mioffice.cn ([43.224.245.241]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-851d36185d3sm1329116b3a.31.2026.08.20.00.14.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Aug 2026 00:14:49 -0700 (PDT) From: Wenjie Qi X-Google-Original-From: Wenjie Qi To: jaegeuk@kernel.org, chao@kernel.org Cc: linux-f2fs-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org, qiwenjie@xiaomi.com, qwjhust@gmail.com Subject: [PATCH v2 1/2] f2fs: complete dropbehind write bios in safe task context Date: Thu, 20 Aug 2026 15:14:37 +0800 Message-ID: <20260820071438.695893-2-qiwenjie@xiaomi.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260820071438.695893-1-qiwenjie@xiaomi.com> References: <20260820071438.695893-1-qiwenjie@xiaomi.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Buffered RWF_DONTCACHE writes invalidate dropbehind folios from writeback completion. Keep normal and dropbehind folios in separate write bios, and defer a dropbehind bio to sbi->wq unless completion runs in preemptible task context. Use the same eligibility conditions as the proposed bio_in_atomic() helper. Unlike !in_task(), this also covers disabled preemption and preemptible RCU read-side critical sections. Keep the existing large-ATC deferral unchanged. Link: https://lore.kernel.org/linux-mm/20260730-blk-dontcache-v7-0-3e8e6850= 068d@columbia.edu/ Signed-off-by: Wenjie Qi --- fs/f2fs/data.c | 50 ++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 42 insertions(+), 8 deletions(-) diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 6ae0eb37d20..774a3e2d8e3 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -21,6 +21,7 @@ #include #include #include +#include =20 #include "f2fs.h" #include "node.h" @@ -43,9 +44,29 @@ struct f2fs_folio_state { =20 struct f2fs_bio { struct work_struct work; + bool dropbehind; struct bio bio; }; =20 +static struct f2fs_bio *to_f2fs_bio(struct bio *bio) +{ + return container_of(bio, struct f2fs_bio, bio); +} + +/* Keep in sync with the proposed block-layer bio_in_atomic(). */ +static bool f2fs_bio_in_atomic(void) +{ +#ifdef CONFIG_PREEMPTION + if (rcu_preempt_depth()) + return true; +#endif +#ifndef CONFIG_PREEMPT_COUNT + return true; +#else + return !preemptible(); +#endif +} + #define F2FS_BIO_POOL_SIZE NR_CURSEG_TYPE =20 int __init f2fs_init_bioset(void) @@ -426,12 +447,13 @@ static void f2fs_write_end_io(struct bio *bio) =20 sbi =3D bio->bi_private; =20 - if (in_atomic() && bio->bi_iter.bi_size > sbi->max_atc_write_bio_size) { - struct work_struct *w; + if ((to_f2fs_bio(bio)->dropbehind && f2fs_bio_in_atomic()) || + (in_atomic() && + bio->bi_iter.bi_size > sbi->max_atc_write_bio_size)) { + struct work_struct *work =3D &to_f2fs_bio(bio)->work; =20 - w =3D &container_of(bio, struct f2fs_bio, bio)->work; - INIT_WORK(w, f2fs_write_end_io_work); - queue_work(sbi->wq, w); + INIT_WORK(work, f2fs_write_end_io_work); + queue_work(sbi->wq, work); } else { f2fs_write_end_bio(bio); } @@ -530,6 +552,8 @@ static struct bio *__bio_alloc(struct f2fs_io_info *fio= , int npages) bio =3D bio_alloc_bioset(bdev, npages, fio->op | fio->op_flags | f2fs_io_flags(fio), GFP_NOIO, &f2fs_bioset); + to_f2fs_bio(bio)->dropbehind =3D + !is_read_io(fio->op) && folio_test_dropbehind(fio->folio); bio->bi_iter.bi_sector =3D sector; if (is_read_io(fio->op)) { bio->bi_end_io =3D f2fs_read_end_io; @@ -825,6 +849,13 @@ static bool page_is_mergeable(struct f2fs_sb_info *sbi= , struct bio *bio, return bio->bi_bdev =3D=3D f2fs_target_device(sbi, cur_blkaddr, NULL); } =20 +static bool f2fs_bio_dropbehind_mergeable(struct bio *bio, + struct f2fs_io_info *fio) +{ + return to_f2fs_bio(bio)->dropbehind =3D=3D + folio_test_dropbehind(fio->folio); +} + static bool io_type_is_mergeable(struct f2fs_bio_info *io, struct f2fs_io_info *fio) { @@ -1017,8 +1048,10 @@ int f2fs_merge_page_bio(struct f2fs_io_info *fio) =20 trace_f2fs_submit_folio_bio(data_folio, fio); =20 - if (bio && !page_is_mergeable(fio->sbi, bio, *fio->last_block, - fio->new_blkaddr)) + if (bio && + (!page_is_mergeable(fio->sbi, bio, *fio->last_block, + fio->new_blkaddr) || + !f2fs_bio_dropbehind_mergeable(bio, fio))) f2fs_submit_merged_ipu_write(fio->sbi, &bio, NULL); alloc_new: if (!bio) { @@ -1118,7 +1151,8 @@ void f2fs_submit_page_write(struct f2fs_io_info *fio) (!io_is_mergeable(sbi, io->bio, io, fio, io->last_block_in_bio, fio->new_blkaddr) || !f2fs_crypt_mergeable_bio(io->bio, fio_inode(fio), - bio_folio->index, fio))) + bio_folio->index, fio) || + !f2fs_bio_dropbehind_mergeable(io->bio, fio))) __submit_merged_bio(io); alloc_new: if (io->bio =3D=3D NULL) { --=20 2.43.0 From nobody Mon Sep 28 15:34:34 2026 Received: from mail-pf1-f181.google.com (mail-pf1-f181.google.com [209.85.210.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D230D3BB11F for ; Thu, 20 Aug 2026 07:14:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787210097; cv=none; b=iWMiSOadP4QW2DwLMJpw1N3jwIC6d2SPEvypZblmB9MoAkkObeBpmrHlg4tAE7ZzCDHmHbVxq+8zGiigf1LiYiSjFIGHS4znJ+7TEiVY7aqpycA3IVEkY6GKEiidj0TWOEf2wbLfXTmOkkXc6aKN/M/NGDn1m3JqpJkGcVAl8QE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787210097; c=relaxed/simple; bh=yHOwYRdHlOn+SsljYvKQcU9MuIIQ2kOgyhbv5wlj4mo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WEpZvj805xVfD6SJBCpGjAKI0kjn0Fr7NEV07giOSWXDDnktUg5xt71AoJZBgvbauY6AC40UEsrH+kTzVQEABZaLU+3Q3Be9BfQM8lqrHga+UsFZjGtqmcPCIjIlKHeqpJ7glXNTsk32pdbwYpFqlFoLUuP7j4TgeQtgseywbm8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ZfE6Ze8w; arc=none smtp.client-ip=209.85.210.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ZfE6Ze8w" Received: by mail-pf1-f181.google.com with SMTP id d2e1a72fcca58-84faf87d19dso1961650b3a.3 for ; Thu, 20 Aug 2026 00:14:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787210094; x=1787814894; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=nEb4XWsfItBITwTZGmKNPe5cmN2HWgRBVZjtN6+d5e8=; b=ZfE6Ze8wPPfB85Mm+q1sranuEggPJSHHafwntWJ6L6w4jh8dS7dqU67zqy0uvu5TnJ thnWxuTUjlWNlNlhUaawYJP9ZHn0+2elWzvv8txEEdtdDd1n+xPIH9ACYey1bHfVV375 rePdNDf6WR8Qbf07tVHzZ98bKew0Lbh5kJUL8o8BSRn1ToFlnaP5q9KDyxjtDhstfPqA DtAmdCX4/OD8mERY6hdwoXPggZNGF9NtoGY9eJkp63wlO9Fs2w53GbOntAxbixf+eJF9 3bg3mg7JAWtzPuZlPOxPdeZlk2WWRN7FHjfz+Qyg3C+9Wlepr49lbx51mH3YQrno27tM aaKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787210094; x=1787814894; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=nEb4XWsfItBITwTZGmKNPe5cmN2HWgRBVZjtN6+d5e8=; b=KnhM0esYZNvMXhAuwYswjpSUY1o11xJPi4KSDOoux3jLhKKf4cVz84qXOEZZ+sxlNY DG2RAzcUmADX+Q6YI8oxYsZgj6P2uM/Q1oRHdn/CqZY/45AQUMWIJBq0EnsZjGnl5tFn s5tZo9IpVulhrFufkSeoVzl5Z0ID4gD4bLGYoITbUQQRqwjJB77trpQCXJkjJiw6SSkk 2TQh3adfuPFNf4hhQoatMjk7ks2wAiKR/6FCGJI00Tc7rd2aOuqXXwxENAsUj345CqAv 8jRfwFpfc11867yU7mdAct/dU2oOKZLGwZQcLXl4lFczOMFBKfIODQ5vaYtCECZc19af ZXYQ== X-Forwarded-Encrypted: i=1; AHgh+RqcgawBYTeGJDNQ2ackZPvVH9i7lI4KcSMckhD1qrwvjZaAtrONTpSUGUac4W7QnTi4eZJEb4gj53uQqQ0=@vger.kernel.org X-Gm-Message-State: AOJu0YxyL1WcNAiO+SFEIyINQwomGvA7DuEiQzwPzuIhjzGyl0NKsoge Mis0q2/iJ5hFjsuM3j87xHkhKAmeqs1yRM7vi5HIvNw7VeZ2sSaT6EXRd7PkOA== X-Gm-Gg: AR+sD118M7XZpsa01QmktpqxjKFQZgs6OzNPukL6S2sGTo2NeaTXIFzNgNzPGbVXyRl I8dfoC9z3Bxg7HUFAly4jphAMuzkqmMUr0f86okZnJOcxpc4fVkm1a9To9lhfFk9taVi4WXaWdD WwfvkneOM99S43fp2bW8buV0eRhPi3NwK1+EgBneANv+Axj30Jbq+nI+ejcSXl949t3R7YUKNlB foT+nccolXqw44iflJOuka37OsGTMLG6nkLxwnO1jD02AoqXF+ai4KCI/6t06psPK3V2ury2dGN YEYmeq5XgJgsJ+7uh0Z7xBbstB/rrN6ejqnnGtFuW1bMcyFiZRkFmbxlRydxYnWItXUWL0OSPyT Zn8N8j8AmImQdPtSxDPnco9OHM77YGQJZh4mSOGF7KQ2TxjiH9HsK6vgipi7AhwN0msJz9VRJVS h8+9Em70WVHiA1sHV9YP6Krz1dqB2z1HcmZWA5DKdX7ll3OIpsf1DgWkSG7PYgDO3DzASkFNpdi ChO4e2gV1Bw0XwlmJ5BJ4bi X-Received: by 2002:a05:6a00:3a13:b0:848:77b3:579a with SMTP id d2e1a72fcca58-851d3a86209mr16318394b3a.17.1787210093936; Thu, 20 Aug 2026 00:14:53 -0700 (PDT) Received: from qiwenjie-ThinkCentre-M760t.mioffice.cn ([43.224.245.241]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-851d36185d3sm1329116b3a.31.2026.08.20.00.14.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Aug 2026 00:14:53 -0700 (PDT) From: Wenjie Qi X-Google-Original-From: Wenjie Qi To: jaegeuk@kernel.org, chao@kernel.org Cc: linux-f2fs-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org, qiwenjie@xiaomi.com, qwjhust@gmail.com Subject: [PATCH v2 2/2] f2fs: enable buffered RWF_DONTCACHE Date: Thu, 20 Aug 2026 15:14:38 +0800 Message-ID: <20260820071438.695893-3-qiwenjie@xiaomi.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260820071438.695893-1-qiwenjie@xiaomi.com> References: <20260820071438.695893-1-qiwenjie@xiaomi.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Pass FGP_DONTCACHE to f2fs_filemap_get_folio() for IOCB_DONTCACHE writes and advertise FOP_DONTCACHE. Keep the F2FS-specific lookup flags because write_begin_get_folio() adds FGP_STABLE, which can deadlock here. Signed-off-by: Wenjie Qi --- fs/f2fs/data.c | 9 ++++++--- fs/f2fs/file.c | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 774a3e2d8e3..ebd9dc582f9 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -3981,11 +3981,15 @@ static int f2fs_write_begin(const struct kiocb *ioc= b, struct inode *inode =3D mapping->host; struct f2fs_sb_info *sbi =3D F2FS_I_SB(inode); struct folio *folio; + fgf_t fgp_flags =3D FGP_LOCK | FGP_WRITE | FGP_CREAT; pgoff_t index =3D pos >> PAGE_SHIFT; bool need_balance =3D false; block_t blkaddr =3D NULL_ADDR; int err =3D 0; =20 + if (iocb->ki_flags & IOCB_DONTCACHE) + fgp_flags |=3D FGP_DONTCACHE; + trace_f2fs_write_begin(inode, pos, len); =20 if (!f2fs_is_checkpoint_ready(sbi)) { @@ -4031,9 +4035,8 @@ static int f2fs_write_begin(const struct kiocb *iocb, * Do not use FGP_STABLE to avoid deadlock. * Will wait that below with our IO control. */ - folio =3D f2fs_filemap_get_folio(mapping, index, - FGP_LOCK | FGP_WRITE | FGP_CREAT, - mapping_gfp_mask(mapping)); + folio =3D f2fs_filemap_get_folio(mapping, index, fgp_flags, + mapping_gfp_mask(mapping)); if (IS_ERR(folio)) { err =3D PTR_ERR(folio); goto fail; diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c index a54b3ab52f1..08285c07c2d 100644 --- a/fs/f2fs/file.c +++ b/fs/f2fs/file.c @@ -5911,6 +5911,6 @@ const struct file_operations f2fs_file_operations =3D= { .splice_read =3D f2fs_file_splice_read, .splice_write =3D iter_file_splice_write, .fadvise =3D f2fs_file_fadvise, - .fop_flags =3D FOP_BUFFER_RASYNC, + .fop_flags =3D FOP_BUFFER_RASYNC | FOP_DONTCACHE, .setlease =3D generic_setlease, }; --=20 2.43.0