From nobody Mon Sep 28 08:45:53 2026 Received: from mail-pj1-f41.google.com (mail-pj1-f41.google.com [209.85.216.41]) (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 59C58137750 for ; Mon, 24 Aug 2026 10:34:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787567646; cv=none; b=Uoboe0frdyTQZ8BpJMetYYYKL1/Ow3Sscn+ieNIs0iIXBk/0lOlrKG2yRWDeq5gGevISylFsqIBthrDUsG5AAc2RmEjdX25hToN0bHo8K2JrKZ4NGiYmuHJMf5CmtazNJQ3/7Pjdlc/jg0dDDNQHGdy7T0zZ/W4uXWfSby8lR6A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787567646; c=relaxed/simple; bh=4l8oMR5aXVNXALkhuKjHiDg3zhd77lNY+7C7QN0eWXw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QIaqVsJGCm1J1JAjMVSCwx00RpeS4aiYlzAnwJuA3bei4XXqImt/ata2sY0nq9vqftZsoeaIC8b0XSXfD7mmZbKpph+gPh6VWRBSHBkg3jatwG1U8PlMPCsjcmoOdRHqD7ByuLziRNGHnFpcKDjRt6EHrlh8IzbQ065P3rlUXV4= 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=hOaMofVm; arc=none smtp.client-ip=209.85.216.41 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="hOaMofVm" Received: by mail-pj1-f41.google.com with SMTP id 98e67ed59e1d1-384930ca5e2so3080476a91.3 for ; Mon, 24 Aug 2026 03:34:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787567640; x=1788172440; 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=hJJbk4tPuMZ/n5IgnZpbMmRDFynIgVeuM9Ohf0uhx24=; b=hOaMofVmlK9mhHR4ApskOicK5X2gMZp5BW8iEqRwzIks6moMHhe3khaAKtc8B1vKDK LScJ4kbseanbjGTbcxmndWJyf0tTcz5VcBEclUxhXM7wuSHH4jsFAFFdseNaw/JwDMgd QZef3vpwkQuyQaJZkCHJcsRZgb5EGTggZsqnNIwT18clJkEJ/1M6hBpkRSp0VBAiFlHb VZ54jh3GXsaoesR++dCS9iMi1dZwDzzBktQfunicy45vKP8rnZ3UV2WICc2n77NgpxlI WGkqRXMrlARIBq9Y3z+Rjqh9XcMC5/Z1BueWh6ZQYAXTa4vLUiLGd9NlfaEFuLzrQvlZ m66Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787567640; x=1788172440; 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=hJJbk4tPuMZ/n5IgnZpbMmRDFynIgVeuM9Ohf0uhx24=; b=V3QbTbN1knOFmmEAnz+9QHvuTdxPyNQSpCGTkQKc8RKeKHLVkoDrV9XO7f2Ryn28r2 WJ9i++yChbYdzfWiYqtwwIc6RnWMtvOKH5MctJNg9/5+L/xvu3RB/2zinQSQ7pptQYdC ENKk1zWiZ2QxIWYgsyhVpN1gbAdOQuvHAWHhW++Xkxqp8iZPizxmuojAnBtybGmZlYXn nvy90fmlbwEOzVSBBRYqYCGFX9D5P9/j8xG8Q+SR1hQpJAuy9zUXZTfycNOYCyeU6Y83 gdIO29Kr5quOyeQ9XhVm+keLdi2FzjPnvYUZ3wlPEAR02COsnfqIshBwtHGkL5ttWKkF 7u0w== X-Forwarded-Encrypted: i=1; AHgh+RokkCxdieryfu80EQrzwhSqw0AR4PTNTW7vuxJbI+oNo58ppyHZgx/401IBcAqIqYUseW+pugdWY/lpR9E=@vger.kernel.org X-Gm-Message-State: AFuF++mN8VBpAyCoJIIiFa+8LEc/szwavOXl2DqnFHyTGuF7VKEVUAei caM7IgxlzFQrxnI/GfYeIoj+noMlApF2EGRWmLKmq9y21irBnKaRBxTpgB2u1Q== X-Gm-Gg: AR+sD11EkCzLvQieAgoga/jUvQbdppe7rH/Bzn0AJLpgFwHpd0WFeeUDhz+M/usUBfx SVhEKCU+7HU5hK88+ErLzaBJtZufo8oFyURgywugLkDG729q3l8HG/Lt2D/PHZt3+F8Gcu0cCg9 TMxP3qBP7p0RvOMF5aDJ24gX0D9G9PERzx8lSKHT5zZiY6zhfjfR7BaZD1fWLAxDwbKl/dFiCFp bIJ/GBeoNmvdT2Mc3LYYfTtRJiqcpfb+R45/0DC3Hb0NXehldJbMrIRzBhp+5/YpYOccUUiiUn6 7xa20+c3XdtncT19b7pVVif2Xgh9zFeJG7iNatOi0qHoYWgpS+bdA963aB3mHsf+m+Q0Pgrsa/8 apHD7lmoWDjPYbYteJS3Qq1bgg22CCGhF2Xp9YirnyW9nKu6EQJgV+Z1y+/aD2CGkmegHGSqJcZ tetRPD5t+r4mivF4RlAQe5lH5ksScYOqugAvo5eT8UBH1x4T1EhmBGyDVCRSuir8yez/k6B9jwa XzpsmR/OvFLzQ4NQIJBQmQo X-Received: by 2002:a17:90b:1d01:b0:38f:5801:dc0e with SMTP id 98e67ed59e1d1-395df5e8426mr33513930a91.15.1787567640562; Mon, 24 Aug 2026 03:34:00 -0700 (PDT) Received: from qiwenjie-ThinkCentre-M760t.mioffice.cn ([43.224.245.241]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-8520f14abb3sm1805081b3a.45.2026.08.24.03.33.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Aug 2026 03:33:59 -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 v3 1/2] f2fs: complete dropbehind write bios in safe task context Date: Mon, 24 Aug 2026 18:33:46 +0800 Message-ID: X-Mailer: git-send-email 2.43.0 In-Reply-To: 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 dropbehind bios to sbi->wq unless completion runs in preemptible task context. Use an F2FS-local context check for this decision. Task context alone is not sufficient: preemption may still be disabled, or completion may run in a preemptible RCU read-side critical section. Keep the existing large-ATC deferral unchanged. 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 08:45:53 2026 Received: from mail-pf1-f172.google.com (mail-pf1-f172.google.com [209.85.210.172]) (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 08F473F65EF for ; Mon, 24 Aug 2026 10:34:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787567646; cv=none; b=ubV1Jmcq+B+xGwgKz8ziNmMMzK3JmBlqcqBkXtHff53bXGjgZQjwoDriQ0niMwK7vTNfC2M4CfDrwvTABJvsnzkSevEIsUNeudF7nv1cTjW9WA8J2egTD+Hyzi8CXinCv6WmEIqIx9PnXwhLgVQSSztrAEJcmNqcNL+NHvR+uKk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787567646; c=relaxed/simple; bh=hjq0pQiBsaHl8KYYoi3rulZLOGXynkRSkoeGa7w61MY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pigqpw73dv20wJEwf5y7HdzlY3nAnG7gXg7oUXdVnzaVEjuvGeV7WH3tlRnyh8xy6/To6LLMXVeaXvUAphXLAUASpO7I2uV7hyP/LGyqlKnfbtXcVHC904MAEn3qtfz+wbwDP+g4ZOXDBT8ap8xSzwGWpTqbkrNQ20E15juziPc= 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=KQkySvI1; arc=none smtp.client-ip=209.85.210.172 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="KQkySvI1" Received: by mail-pf1-f172.google.com with SMTP id d2e1a72fcca58-84a4d8fd6ecso3337917b3a.1 for ; Mon, 24 Aug 2026 03:34:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787567644; x=1788172444; 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=gAe9u96jNxE6H3oZgwbxQpRnQm+N+LumGnkEUW5jR6Q=; b=KQkySvI1ATPb5tl1lBJSXQpQ/1OZ3umg98FBGppRKmyIERupBFy0e8R6Pen3vgr4Ry 08EJvwms44hNgnfcYnLRHf1748K4qrKmE+N35NYvrW2t6msuswTCUp0pUm1wHEVuwHa7 /hGVE3MXIW4jkmwdHPgtIy+xrrDutwFbktB8YO5RqJZpHzcpJQruSNOL/91CVZbG8KTu AWuw7qFfu6ri0G92XNUfHGK6wKRQlydU4g8nlCF6NF82yzJ21sMom//9cr8CjTcZ+5UM OWncW2gCHYhHSKIOj3m/XWFeN54kd6drm1izT44Uxgy7Ggd1ep+YRJbhDToGjsHmuqDP VdKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787567644; x=1788172444; 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=gAe9u96jNxE6H3oZgwbxQpRnQm+N+LumGnkEUW5jR6Q=; b=BPBoieOO+YVBg1X02dgB3jEuq1Pb8khx06DClsOfffi3bW3N7jCPFFJ985z5cPNtHi J0sbIIadSqXQPdT7GiROb6LS+7ztJ1ScFTEDf0+/vOdAUjEeLnGLUoz4w2MhnZYGFEmR QuBk09IMAKvLf33iTmpbpqqTQqRY9t9A7FK21oL/cquWefNC0nB+E70PRV2nfdK60Mn5 ejqepdHgKr8IKcLaO4XWhFLVSFFRccWxryMJUKCqYQWEzuNKqqnGmrUmGAGWnGdOAj7/ 4Zvz0VNFaoXv9nMWrcd+EPaFIJPSPqKxsnW6nF9OuwOUf0DOMlUGVpP2TVpBCQC7YpKD BjIg== X-Forwarded-Encrypted: i=1; AHgh+RoCHagkdZQKzOMs57U2lGBTKliqadElaQQcd5Znw+3tDyFomJ6OwLXwGKpJhAkjGyp0e++mkbqnF3+iqNk=@vger.kernel.org X-Gm-Message-State: AFuF++lXKmntlLkHtnb1Y6nCwUg8Qg3gO1SxIeCzAGnNMoR4s8KRer0I 2hyY3jBxfbd4Ymc2W8zjnW+QnIynxqAcS8DCLYgR6zLG2MDZJfrVYTXl X-Gm-Gg: AR+sD10OGy1Ys/oAu5Sgf/K3rsHdXr0b2ZKGGuAOcdjhMltHYvHFyV3NXus+8BMB6Xs 4+dEj7SAvX0dKYIc4OYnV7BVqx1JUnvV9h6RxaEzWWv7CI0v0FVuT3jCNSRFfXEhd2PCWZ902SK GDVV2Xks7BsjLme1KqorqtyGsSOT8pD3yT5aGghu6JfWM7wmG+R3r7o2cP2PmeDXsGmJPIs3hQD 9R1/x7+jTrEcGrEegZP4yMTMDyG1nyFUctlj+PnGPvbdkcxtfFlUDtG/QXNUt+r6B1eQzDZQAQc udZZQPhn15diveMp04lIupVSdZZR02/bLnVg4M7XLP4nm4XtWy+kJV/gyC0ZjQZj8P7pWpKnvq9 igKbdLobtK/1SWfjZsEb8VjUwRhIc+PxZ0zS6walfnH8FYquy7IHtg4us4GcDhSQEQoxk/21ddo 6pReNfWm2629CJzDeE3XokT/wwo4Sf4sJVYnBw0AEkwK3DffV61413y4T4cYeVwP643EZFoUoyM qf617Zodnudb8NeIgET45LiwBSSkfqZ1BU= X-Received: by 2002:a05:6a00:1d8f:b0:84f:a7bf:8fb9 with SMTP id d2e1a72fcca58-8520b9c6cfemr30801153b3a.3.1787567644332; Mon, 24 Aug 2026 03:34:04 -0700 (PDT) Received: from qiwenjie-ThinkCentre-M760t.mioffice.cn ([43.224.245.241]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-8520f14abb3sm1805081b3a.45.2026.08.24.03.34.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Aug 2026 03:34:03 -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 v3 2/2] f2fs: enable buffered RWF_DONTCACHE Date: Mon, 24 Aug 2026 18:33:47 +0800 Message-ID: <03790070c828924d98ba6d78e909391fb0014c7a.1787564706.git.qiwenjie@xiaomi.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: 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 d82be8c1502..8e9d86dd42c 100644 --- a/fs/f2fs/file.c +++ b/fs/f2fs/file.c @@ -5912,6 +5912,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