Re: [PATCH v2] fs/buffer: serialize set_buffer_uptodate against concurrent clears
From: Matthew Wilcox
Date: Thu Jul 30 2026 - 16:20:51 EST
On Thu, Jul 30, 2026 at 03:47:23PM -0400, Chris S wrote:
> Hi Jan, I'm currently working on the changes we discussed. Based on
> vfs.all now. Four things came out of writing it that I would rather
> resolve before posting.
>
> 1. mark_buffer_write_io_error() is not safe for jbd2's buffers yet. It
> dereferences bh->b_folio->mapping directly (fs/buffer.c:1057), and
> jbd2_journal_write_metadata_buffer() points the temporary bh at
> virt_to_folio(jh->b_frozen_data), which is slab-backed.
... yeah. That's one of the unclean things which keeps me awake at
night. Sorry you ran into it.
My longterm plan for this particular usecase (pointing a bh at slab
memory) is to have bh->b_folio = NULL, bh->b_data = (address of data).
Maybe we could do that now? That would make mark_buffer_write_io_error()
work without change today.
There might be a good reason I didn't do that yet, but I forget what it
was.