All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/3] Metadata IO error fixes
@ 2021-11-24 19:14 Josef Bacik
  2021-11-24 19:14 ` [PATCH v2 1/3] btrfs: clear extent buffer uptodate when we fail to write it Josef Bacik
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Josef Bacik @ 2021-11-24 19:14 UTC (permalink / raw)
  To: linux-btrfs, kernel-team

v1->v2:
- I was debugging generic/484 separately because I thought it was data related,
  but it turned out to be metadata related as well, so I've added the patch
  "btrfs: call mapping_set_error() on btree inode with a write error" to the
  series.

--- Original email ---

Hello,

I saw a dmesg failure with generic/281 on our overnight runs.  This turned out
to be because we weren't getting an error back from btrfs_search_slot() even
though we found a metadata block that shouldn't have been uptodate.

The root cause is that write errors on the page clear uptodate on the page, but
not on the extent buffer itself.  Since we rely on that bit to tell wether the
extent buffer is valid or not we don't notice that the eb is bogus when we find
it in cache in a subsequent write, and eventually trip over
assert_eb_page_uptodate() warnings.

This fixes the problem I was seeing, I could easily reproduce by running
generic/281 in a loop a few times.  With these pages I haven't reproduced in 20
loops.  Thanks,

Josef

Josef Bacik (3):
  btrfs: clear extent buffer uptodate when we fail to write it
  btrfs: check the root node for uptodate before returning it
  btrfs: call mapping_set_error() on btree inode with a write error

 fs/btrfs/ctree.c     | 19 +++++++++++++++----
 fs/btrfs/extent_io.c | 14 ++++++++++++++
 2 files changed, 29 insertions(+), 4 deletions(-)

-- 
2.26.3


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2021-11-29 16:58 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-24 19:14 [PATCH v2 0/3] Metadata IO error fixes Josef Bacik
2021-11-24 19:14 ` [PATCH v2 1/3] btrfs: clear extent buffer uptodate when we fail to write it Josef Bacik
2021-11-24 19:14 ` [PATCH v2 2/3] btrfs: check the root node for uptodate before returning it Josef Bacik
2021-11-25  9:07   ` Nikolay Borisov
2021-11-24 19:14 ` [PATCH v2 3/3] btrfs: call mapping_set_error() on btree inode with a write error Josef Bacik
2021-11-25  9:12   ` Nikolay Borisov
2021-11-25  9:12 ` [PATCH v2 0/3] Metadata IO error fixes Nikolay Borisov
2021-11-29 16:56   ` David Sterba
2021-11-29 16:56 ` David Sterba

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.