From: Christoph Hellwig <hch@lst.de>
To: Qu Wenruo <quwenruo.btrfs@gmx.com>
Cc: Christoph Hellwig <hch@lst.de>, Chris Mason <clm@fb.com>,
Josef Bacik <josef@toxicpanda.com>,
David Sterba <dsterba@suse.com>,
linux-btrfs@vger.kernel.org,
Johannes Thumshirn <johannes.thumshirn@wdc.com>,
Qu Wenruo <wqu@suse.com>
Subject: Re: [PATCH 15/21] btrfs: remove the extent_buffer lookup in btree block checksumming
Date: Fri, 26 May 2023 08:41:23 +0200 [thread overview]
Message-ID: <20230526064123.GA10378@lst.de> (raw)
In-Reply-To: <1442e52f-9ba1-d9fa-f439-34d31b46800f@gmx.com>
On Fri, May 26, 2023 at 02:39:54PM +0800, Qu Wenruo wrote:
>> + if (WARN_ON_ONCE(found_start != eb->start))
>> + return BLK_STS_IOERR;
>> + if (WARN_ON_ONCE(!PageUptodate(eb->pages[0])))
>> + return BLK_STS_IOERR;
>
> Unfortunately this is screwing up subpage support.
>
> Previously subpage goes its own helper, which replaces the uptodate
> check to using the subpage helper.
>
> Since PageUptodate flag is only set when all eb in that page is uptodate.
> If we have a hole in the page range, the page will never be marked Uptodate.
>
> Thus for any subpage mount, this would lead to transaction abort during
> metadata writeback.
>
> We have btrfs_page_clamp_test_uptodate() for this usage.
True, this should use the sub page helper. Or maybe just drop
this assert altogether?
next prev parent reply other threads:[~2023-05-26 6:41 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-03 15:24 simplify extent_buffer reading and writing v4 Christoph Hellwig
2023-05-03 15:24 ` [PATCH 01/21] btrfs: mark extent_buffer_under_io static Christoph Hellwig
2023-05-03 15:24 ` [PATCH 02/21] btrfs: fix sub-page error handling in end_bio_subpage_eb_writepage Christoph Hellwig
2023-05-03 15:24 ` [PATCH 03/21] btrfs: move setting the buffer uptodate out of validate_extent_buffer Christoph Hellwig
2023-05-03 15:24 ` [PATCH 04/21] btrfs: merge verify_parent_transid and btrfs_buffer_uptodate Christoph Hellwig
2023-05-03 15:24 ` [PATCH 05/21] btrfs: always read the entire extent_buffer Christoph Hellwig
2023-05-03 15:24 ` [PATCH 06/21] btrfs: don't use btrfs_bio_ctrl for extent buffer reading Christoph Hellwig
2023-05-03 15:24 ` [PATCH 07/21] btrfs: remove the mirror_num argument to btrfs_submit_compressed_read Christoph Hellwig
2023-05-03 15:24 ` [PATCH 08/21] btrfs: use a separate end_io handler for read_extent_buffer Christoph Hellwig
2023-05-03 15:24 ` [PATCH 09/21] btrfs: do not try to unlock the extent for non-subpage metadata reads Christoph Hellwig
2023-05-03 15:24 ` [PATCH 10/21] btrfs: return bool from lock_extent_buffer_for_io Christoph Hellwig
2023-05-23 18:43 ` David Sterba
2023-05-24 5:44 ` Christoph Hellwig
2023-05-26 13:34 ` David Sterba
2023-05-03 15:24 ` [PATCH 11/21] btrfs: submit a writeback bio per extent_buffer Christoph Hellwig
2023-05-03 15:24 ` [PATCH 12/21] btrfs: move page locking from lock_extent_buffer_for_io to write_one_eb Christoph Hellwig
2023-05-03 15:24 ` [PATCH 13/21] btrfs: don't use btrfs_bio_ctrl for extent buffer writing Christoph Hellwig
2023-05-23 18:45 ` David Sterba
2023-05-24 5:50 ` Christoph Hellwig
2023-05-26 13:15 ` David Sterba
2023-05-26 13:35 ` Christoph Hellwig
2023-05-03 15:24 ` [PATCH 14/21] btrfs: use a separate end_io handler for extent_buffer writing Christoph Hellwig
2023-05-11 15:02 ` Josef Bacik
2023-05-03 15:24 ` [PATCH 15/21] btrfs: remove the extent_buffer lookup in btree block checksumming Christoph Hellwig
2023-05-26 6:39 ` Qu Wenruo
2023-05-26 6:41 ` Christoph Hellwig [this message]
2023-05-26 6:43 ` Qu Wenruo
2023-05-26 7:03 ` Christoph Hellwig
2023-05-26 7:25 ` Qu Wenruo
2023-05-26 13:58 ` David Sterba
2023-05-03 15:24 ` [PATCH 16/21] btrfs: remove the io_pages field in struct extent_buffer Christoph Hellwig
2023-05-03 15:24 ` [PATCH 17/21] btrfs: stop using PageError for extent_buffers Christoph Hellwig
2023-05-03 15:24 ` [PATCH 18/21] btrfs: don't check for uptodate pages in read_extent_buffer_pages Christoph Hellwig
2023-05-03 15:24 ` [PATCH 19/21] btrfs: stop using lock_extent in btrfs_buffer_uptodate Christoph Hellwig
2023-05-03 15:24 ` [PATCH 20/21] btrfs: use per-buffer locking for extent_buffer reading Christoph Hellwig
2023-05-03 15:24 ` [PATCH 21/21] btrfs: merge write_one_subpage_eb into write_one_eb Christoph Hellwig
2023-05-11 15:08 ` simplify extent_buffer reading and writing v4 Josef Bacik
2023-05-23 19:42 ` David Sterba
-- strict thread matches above, loose matches on Subject: below --
2023-03-30 6:30 simplify extent_buffer reading and writing v3 Christoph Hellwig
2023-03-30 6:30 ` [PATCH 15/21] btrfs: remove the extent_buffer lookup in btree block checksumming Christoph Hellwig
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=20230526064123.GA10378@lst.de \
--to=hch@lst.de \
--cc=clm@fb.com \
--cc=dsterba@suse.com \
--cc=johannes.thumshirn@wdc.com \
--cc=josef@toxicpanda.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=quwenruo.btrfs@gmx.com \
--cc=wqu@suse.com \
/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.