On Sun, Jan 18, 2026 at 2:33 PM John Groves <[email protected]> wrote: > > From: John Groves <[email protected]> > > Famfs is memory-backed; there is no place to write back to, and no > reason to mark pages dirty at all. > > Signed-off-by: John Groves <[email protected]>
Reviewed-by: Joanne Koong <[email protected]> > --- > fs/fuse/famfs.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/fs/fuse/famfs.c b/fs/fuse/famfs.c > index b38e92d8f381..90325bd14354 100644 > --- a/fs/fuse/famfs.c > +++ b/fs/fuse/famfs.c > @@ -14,6 +14,7 @@ > #include <linux/mm.h> > #include <linux/dax.h> > #include <linux/iomap.h> > +#include <linux/pagemap.h> > #include <linux/path.h> > #include <linux/namei.h> > #include <linux/string.h> > @@ -39,6 +40,15 @@ static const struct dax_holder_operations > famfs_fuse_dax_holder_ops = { > .notify_failure = famfs_dax_notify_failure, > }; > > +/* > + * DAX address_space_operations for famfs. > + * famfs doesn't need dirty tracking - writes go directly to > + * memory with no writeback required. > + */ > +static const struct address_space_operations famfs_dax_aops = { > + .dirty_folio = noop_dirty_folio, > +}; > + > > /*****************************************************************************/ > > /* > @@ -627,6 +637,7 @@ famfs_file_init_dax( > if (famfs_meta_set(fi, meta) == NULL) { > i_size_write(inode, meta->file_size); > inode->i_flags |= S_DAX; > + inode->i_data.a_ops = &famfs_dax_aops; > } else { > pr_debug("%s: file already had metadata\n", __func__); > __famfs_meta_free(meta); > -- > 2.52.0 > >
