Re: [PATCH v2 05/10] fsdax: Replace mmap entry in case of CoW

From: Christoph Hellwig
Date: Wed Mar 03 2021 - 09:26:51 EST


On Wed, Mar 03, 2021 at 09:41:54AM +0000, ruansy.fnst@xxxxxxxxxxx wrote:
>
> > >
> > > if (dirty)
> > > __mark_inode_dirty(mapping->host, I_DIRTY_PAGES);
> >
> > I still think the __mark_inode_dirty should just be moved into the one
> > caller that needs it.
>
> I found that the dirty flag will be used in the next few lines, so I keep
> this function inside. If I move it outside, the drity flag should be passed
> in as well.
>
> @@ -774,6 +780,9 @@ static void *dax_insert_entry(struct xa_state *xas,
> if (dirty)
> xas_set_mark(xas, PAGECACHE_TAG_DIRTY);
>
> + if (cow)
> + xas_set_mark(xas, PAGECACHE_TAG_TOWRITE);
> +
> xas_unlock_irq(xas);
> return entry;
> }
>
>
> So, may I ask what's your purpose for doing in that way?

Oh, true. We can't just move that out as the xas needs to stay
locked.