From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from a48-181.smtp-out.amazonses.com (a48-181.smtp-out.amazonses.com [54.240.48.181]) (using TLSv1.2 with cipher AES128-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3F008301486; Tue, 24 Mar 2026 00:42:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=54.240.48.181 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774312921; cv=none; b=qbq0D+jRj4jgVgFM6he7mQNbAjt4SdKomBsdxm9e0eO7lSgqbJbWD0OnS4TQUCfAJSZ3PcbjCVzl2/1yXBK/wUyNUVpZs9VO5iCeA7uBIcQel5y3vt6D4cmnxd8W86S240xZoX5/xD/WniIOl5Q3IqJeHR9dDWhAVnwfFDfUbJg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774312921; c=relaxed/simple; bh=3P1DJ3PxyuLI1lMtCqf3yEm20zZ5+pdmyAoAEVyDjtA=; h=Subject:From:To:Cc:Date:Mime-Version:Content-Type:In-Reply-To: References:Message-ID; b=h7SmXqP38KC+yF714JWGXXf7kh+m6t4eJa6/zat1J5pmuMvnlEbqr+5ELGdMhQmdQGsJ+zvaSnkMen8vfIbvRykXe5WY8jfKPEHmIjsOzrOl0O79XbwMb8GFC8+6g5AX7cTC5QY7JC4cfWsfYxdM0FJmzPNXujqo7k4C61Rk+Do= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=jagalactic.com; spf=pass smtp.mailfrom=amazonses.com; dkim=pass (1024-bit key) header.d=jagalactic.com header.i=@jagalactic.com header.b=GYeWpTOd; dkim=pass (1024-bit key) header.d=amazonses.com header.i=@amazonses.com header.b=q4FhPY3s; arc=none smtp.client-ip=54.240.48.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=jagalactic.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=amazonses.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=jagalactic.com header.i=@jagalactic.com header.b="GYeWpTOd"; dkim=pass (1024-bit key) header.d=amazonses.com header.i=@amazonses.com header.b="q4FhPY3s" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=o25mqk5iffcfzgc3wo2zjhkohcyjzsoq; d=jagalactic.com; t=1774312919; h=Subject:From:To:Cc:Date:Mime-Version:Content-Type:Content-Transfer-Encoding:In-Reply-To:References:Message-Id; bh=3P1DJ3PxyuLI1lMtCqf3yEm20zZ5+pdmyAoAEVyDjtA=; b=GYeWpTOd5DGBc/gtok0NdjzfhIBiPO7zvW93vqp6STlt1bXBfb1PO2i06wDzRvjZ wwr+Mlm3YJqi3uJJk4IcwIkePujgtd6hRW9XX9gVce0jcb/MYy1hM0eq2yQfv0n5di7 EkRQc9lFJub6vxFdbAJEZec21fCUW/NpHHpN7E6Y= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=224i4yxa5dv7c2xz3womw6peuasteono; d=amazonses.com; t=1774312919; h=Subject:From:To:Cc:Date:Mime-Version:Content-Type:Content-Transfer-Encoding:In-Reply-To:References:Message-Id:Feedback-ID; bh=3P1DJ3PxyuLI1lMtCqf3yEm20zZ5+pdmyAoAEVyDjtA=; b=q4FhPY3sBcgrrHTqRonna/+pR9S4PofXuOiDg+G621Q2dTq32/gdyXcI72cy2/w/ HELkPjvVlRCTsXdE3VRwDLUkOFZYyUaDvmD6/3J1dnePqPGkjKbKNZDrlvWl6vQFPRe LLFYJE5nk2E7BSZ6RkVGguWZliZ6ePxpMLtJxZFQ= Subject: [PATCH V9 08/10] famfs_fuse: Add DAX address_space_operations with noop_dirty_folio From: =?UTF-8?Q?John_Groves?= To: =?UTF-8?Q?John_Groves?= , =?UTF-8?Q?Miklos_Szeredi?= , =?UTF-8?Q?Dan_Williams?= , =?UTF-8?Q?Bernd_Schubert?= , =?UTF-8?Q?Alison_Schofiel?= =?UTF-8?Q?d?= Cc: =?UTF-8?Q?John_Groves?= , =?UTF-8?Q?Jonathan_Corbe?= =?UTF-8?Q?t?= , =?UTF-8?Q?Shuah_Khan?= , =?UTF-8?Q?Vishal_Verma?= , =?UTF-8?Q?Dave_Jiang?= , =?UTF-8?Q?Matthew_Wilcox?= , =?UTF-8?Q?Jan_Kara?= , =?UTF-8?Q?Alexander_Viro?= , =?UTF-8?Q?David_Hildenbrand?= , =?UTF-8?Q?Christian_Bra?= =?UTF-8?Q?uner?= , =?UTF-8?Q?Darrick_J_=2E_Wong?= , =?UTF-8?Q?Randy_Dunlap?= , =?UTF-8?Q?Jeff_Layton?= , =?UTF-8?Q?Amir_Goldstein?= , =?UTF-8?Q?Jonathan_Cameron?= , =?UTF-8?Q?Stefan_Hajnoczi?= , =?UTF-8?Q?Joanne_Koong?= , =?UTF-8?Q?Josef_Bacik?= , =?UTF-8?Q?Bagas_Sanjaya?= , =?UTF-8?Q?Chen_Linxuan?= , =?UTF-8?Q?James_Morse?= , =?UTF-8?Q?Fuad_Tabba?= , =?UTF-8?Q?Sean_Christopherson?= , =?UTF-8?Q?Shivank_Garg?= , =?UTF-8?Q?Ackerley_Tng?= , =?UTF-8?Q?Gregory_Pric?= =?UTF-8?Q?e?= , =?UTF-8?Q?Aravind_Ramesh?= , =?UTF-8?Q?Ajay_Joshi?= , =?UTF-8?Q?venkataravis=40micron=2Ecom?= , =?UTF-8?Q?linux-doc=40vger=2Ekernel=2Eorg?= , =?UTF-8?Q?linux-kernel=40vger=2Ekernel=2Eorg?= , =?UTF-8?Q?nvdimm=40lists=2Elinux=2Edev?= , =?UTF-8?Q?linux-cxl=40vger=2Ekernel=2Eorg?= , =?UTF-8?Q?linux-fsdevel=40vger=2Ekernel=2Eorg?= , =?UTF-8?Q?John_Groves?= Date: Tue, 24 Mar 2026 00:41:59 +0000 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable In-Reply-To: <0100019d1d48b7e8-4468329f-b446-43f1-87db-3c7e1ff6f28b-000000@email.amazonses.com> References: <0100019d1d48b7e8-4468329f-b446-43f1-87db-3c7e1ff6f28b-000000@email.amazonses.com> <20260324004148.5320-1-john@jagalactic.com> X-Mailer: Amazon WorkMail Thread-Index: AQHcuycENL8toohESZaUVLVRXldZAA== Thread-Topic: [PATCH V9 08/10] famfs_fuse: Add DAX address_space_operations with noop_dirty_folio X-Wm-Sent-Timestamp: 1774312917 X-Original-Mailer: git-send-email 2.52.0 Message-ID: <0100019d1d4a9094-e5e1ca00-aba3-45cc-825b-a84030e3d3f7-000000@email.amazonses.com> Feedback-ID: ::1.us-east-1.LF00NED762KFuBsfzrtoqw+Brn/qlF9OYdxWukAhsl8=:AmazonSES X-SES-Outgoing: 2026.03.24-54.240.48.181 From: John Groves =0D=0A=0D=0AFamfs is memory-backed; th= ere is no place to write back to, and no=0D=0Areason to mark pages dirty = at all.=0D=0A=0D=0ASigned-off-by: John Groves =0D=0A---=0D= =0A fs/fuse/famfs.c | 11 +++++++++++=0D=0A 1 file changed, 11 insertions(= +)=0D=0A=0D=0Adiff --git a/fs/fuse/famfs.c b/fs/fuse/famfs.c=0D=0Aindex 8= 7012df537eb..121ed74e9727 100644=0D=0A--- a/fs/fuse/famfs.c=0D=0A+++ b/fs= /fuse/famfs.c=0D=0A@@ -14,6 +14,7 @@=0D=0A #include =0D=0A #i= nclude =0D=0A #include =0D=0A+#include =0D=0A #include =0D=0A #include =0D= =0A #include =0D=0A@@ -39,6 +40,15 @@ static const struct= dax_holder_operations famfs_fuse_dax_holder_ops =3D {=0D=0A =09.notify_f= ailure=09=09=3D famfs_dax_notify_failure,=0D=0A };=0D=0A=20=0D=0A+/*=0D=0A= + * DAX address_space_operations for famfs.=0D=0A+ * famfs doesn't need d= irty tracking - writes go directly to=0D=0A+ * memory with no writeback r= equired.=0D=0A+ */=0D=0A+static const struct address_space_operations fam= fs_dax_aops =3D {=0D=0A+=09.dirty_folio=09=3D noop_dirty_folio,=0D=0A+};=0D= =0A+=0D=0A /*************************************************************= ****************/=0D=0A=20=0D=0A /*=0D=0A@@ -624,6 +634,7 @@ famfs_file_i= nit_dax(=0D=0A =09if (famfs_meta_set(fi, meta) =3D=3D NULL) {=0D=0A =09=09= i_size_write(inode, meta->file_size);=0D=0A =09=09inode->i_flags |=3D S_D= AX;=0D=0A+=09=09inode->i_data.a_ops =3D &famfs_dax_aops;=0D=0A =09} else = {=0D=0A =09=09pr_debug("%s: file already had metadata\n", __func__);=0D=0A= =09=09__famfs_meta_free(meta);=0D=0A--=20=0D=0A2.53.0=0D=0A=0D=0A