From: Josef Bacik <josef@toxicpanda.com>
To: Christoph Hellwig <hch@lst.de>
Cc: Chris Mason <clm@fb.com>, David Sterba <dsterba@suse.com>,
Boris Burkov <boris@bur.io>,
Johannes Thumshirn <Johannes.Thumshirn@wdc.com>,
Naohiro Aota <Naohiro.Aota@wdc.com>,
linux-btrfs@vger.kernel.org
Subject: Re: btrfs: fix corruption caused by partial dio writes v7
Date: Tue, 28 Mar 2023 11:20:14 -0400 [thread overview]
Message-ID: <20230328152014.GA11390@localhost.localdomain> (raw)
In-Reply-To: <20230328051957.1161316-1-hch@lst.de>
On Tue, Mar 28, 2023 at 02:19:46PM +0900, Christoph Hellwig wrote:
> [this is a resend of the series from Boris, with my changes to avoid
> the three-way split in btrfs_extract_ordered_extent inserted in the
> middle]
>
> The final patch in this series ensures that bios submitted by btrfs dio
> match the corresponding ordered_extent and extent_map exactly. As a
> result, there is no hole or deadlock as a result of partial writes, even
> if the write buffer is a partly overlapping mapping of the range being
> written to.
>
> This required a bit of refactoring and setup. Specifically, the zoned
> device code for "extracting" an ordered extent matching a bio could be
> reused with some refactoring to return the new ordered extents after the
> split.
>
>
> Changes since v6:
> - use ERR_CAST
> - clarify a commit log
>
> Changes since v5:
> - avoid three-way splits in btrfs_extract_ordered_extent
You can add
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
to the series. Thanks,
Josef
next prev parent reply other threads:[~2023-03-28 15:22 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-28 5:19 btrfs: fix corruption caused by partial dio writes v7 Christoph Hellwig
2023-03-28 5:19 ` [PATCH 01/11] btrfs: add function to create and return an ordered extent Christoph Hellwig
2023-03-28 5:19 ` [PATCH 02/11] btrfs: pass flags as unsigned long to btrfs_add_ordered_extent Christoph Hellwig
2023-03-28 5:19 ` [PATCH 03/11] btrfs: stash ordered extent in dio_data during iomap dio Christoph Hellwig
2023-03-28 5:19 ` [PATCH 04/11] btrfs: move ordered_extent internal sanity checks into btrfs_split_ordered_extent Christoph Hellwig
2023-03-28 5:19 ` [PATCH 05/11] btrfs: simplify btrfs_extract_ordered_extent Christoph Hellwig
2023-03-28 17:53 ` David Sterba
2023-03-28 5:19 ` [PATCH 06/11] btrfs: simplify btrfs_split_ordered_extent Christoph Hellwig
2023-03-28 5:19 ` [PATCH 07/11] btrfs: fold btrfs_clone_ordered_extent into btrfs_split_ordered_extent Christoph Hellwig
2023-03-28 5:19 ` [PATCH 08/11] btrfs: simplify split_zoned_em Christoph Hellwig
2023-03-28 5:19 ` [PATCH 09/11] btrfs: pass an ordered_extent to btrfs_extract_ordered_extent Christoph Hellwig
2023-03-28 5:19 ` [PATCH 10/11] btrfs: don't split nocow extent_maps in btrfs_extract_ordered_extent Christoph Hellwig
2023-03-28 5:19 ` [PATCH 11/11] btrfs: split partial dio bios before submit Christoph Hellwig
2023-03-28 15:20 ` Josef Bacik [this message]
2023-03-28 18:24 ` btrfs: fix corruption caused by partial dio writes v7 David Sterba
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=20230328152014.GA11390@localhost.localdomain \
--to=josef@toxicpanda.com \
--cc=Johannes.Thumshirn@wdc.com \
--cc=Naohiro.Aota@wdc.com \
--cc=boris@bur.io \
--cc=clm@fb.com \
--cc=dsterba@suse.com \
--cc=hch@lst.de \
--cc=linux-btrfs@vger.kernel.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.