All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <djwong@kernel.org>
To: Joanne Koong <joannelkoong@gmail.com>
Cc: brauner@kernel.org, willy@infradead.org, hch@lst.de,
	miklos@szeredi.hu, linux-fsdevel@vger.kernel.org,
	fuse-devel@lists.linux.dev
Subject: Re: [PATCH v2 2/2] fuse: use iomap helper to mark folio uptodate
Date: Wed, 24 Jun 2026 15:18:20 -0700	[thread overview]
Message-ID: <20260624221820.GB6095@frogsfrogsfrogs> (raw)
In-Reply-To: <20260624212925.1668662-3-joannelkoong@gmail.com>

On Wed, Jun 24, 2026 at 02:29:25PM -0700, Joanne Koong wrote:
> When fuse enables large folios, a large folio will be backed by
> iomap_folio_state that keeps track of uptodate and dirty state in an
> internal bitmap.
> 
> Fuse writethrough and notify store paths currently set folio uptodate
> state with folio_mark_uptodate(), which touches only the folio-level
> flag, but on an iomap-backed folio, that leaves the uptodate bitmap out
> of sync.
> 
> Use the iomap_folio_mark_uptodate() helper to update both the folio
> uptodate state and the iomap uptodate bitmap.
> 
> Signed-off-by: Joanne Koong <joannelkoong@gmail.com>
> ---
>  fs/fuse/file.c   | 2 +-
>  fs/fuse/notify.c | 4 +++-
>  2 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/fuse/file.c b/fs/fuse/file.c
> index e052a0d44dee..26f27e113e9c 100644
> --- a/fs/fuse/file.c
> +++ b/fs/fuse/file.c
> @@ -1335,7 +1335,7 @@ static ssize_t fuse_fill_write_pages(struct fuse_io_args *ia,
>  
>  		/* If we copied full folio, mark it uptodate */
>  		if (tmp == folio_size(folio))
> -			folio_mark_uptodate(folio);
> +			iomap_folio_mark_uptodate(folio);
>  
>  		if (folio_test_uptodate(folio)) {
>  			folio_unlock(folio);
> diff --git a/fs/fuse/notify.c b/fs/fuse/notify.c
> index 29578104ae6c..1ba763705d91 100644
> --- a/fs/fuse/notify.c
> +++ b/fs/fuse/notify.c
> @@ -2,6 +2,8 @@
>  
>  #include "dev.h"
>  #include "fuse_i.h"
> +
> +#include <linux/iomap.h>
>  #include <linux/pagemap.h>
>  
>  static int fuse_notify_poll(struct fuse_conn *fc, unsigned int size,
> @@ -192,7 +194,7 @@ static int fuse_notify_store(struct fuse_conn *fc, unsigned int size,
>  		if (!folio_test_uptodate(folio) && !err && folio_offset == 0 &&
>  		    (nr_bytes == folio_size(folio) || file_size == end)) {
>  			folio_zero_segment(folio, nr_bytes, folio_size(folio));
> -			folio_mark_uptodate(folio);
> +			iomap_folio_mark_uptodate(folio);

I wonder, if a fuse server stores to a range of dirty pagecache and
completely over-stores the dirty range, can that folio still get
scheduled for writeback?  I guess it's no big deal if that writeback
happens since the fuse server already knew about that content.

--D

>  		}
>  		folio_unlock(folio);
>  		folio_put(folio);
> -- 
> 2.52.0
> 

  reply	other threads:[~2026-06-24 22:18 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-24 21:29 [PATCH v2 0/2] iomap: add helper to keep uptodate bitmap in sync Joanne Koong
2026-06-24 21:29 ` [PATCH v2 1/2] iomap: add helper to mark folio uptodate Joanne Koong
2026-06-25 11:50   ` Christoph Hellwig
2026-06-25 18:55     ` Darrick J. Wong
2026-06-24 21:29 ` [PATCH v2 2/2] fuse: use iomap " Joanne Koong
2026-06-24 22:18   ` Darrick J. Wong [this message]
2026-06-25  0:35     ` Joanne Koong
2026-06-25 18:57       ` Darrick J. Wong
2026-06-25  7:46 ` [PATCH v2 0/2] iomap: add helper to keep uptodate bitmap in sync Christian Brauner
2026-06-25 21:54   ` Joanne Koong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260624221820.GB6095@frogsfrogsfrogs \
    --to=djwong@kernel.org \
    --cc=brauner@kernel.org \
    --cc=fuse-devel@lists.linux.dev \
    --cc=hch@lst.de \
    --cc=joannelkoong@gmail.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=miklos@szeredi.hu \
    --cc=willy@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.