Message ID | 20230314061655.245340-3-hch@lst.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [01/21] btrfs: mark extent_buffer_under_io static | expand |
On 2023/3/14 14:16, Christoph Hellwig wrote: > Call btrfs_page_clear_uptodate instead of ClearPageUptodate to properly > manage the error bit for the subpage case. I guess you mean "uptodate bit". > > Reported-by: Qu Wenruo <quwenruo.btrfs@gmx.com> > Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Qu Wenruo <wqu@suse.com> Thanks, Qu > --- > fs/btrfs/extent_io.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c > index 302af9b01bda2a..2bc141b3f3bc4b 100644 > --- a/fs/btrfs/extent_io.c > +++ b/fs/btrfs/extent_io.c > @@ -1914,7 +1914,8 @@ static void end_bio_subpage_eb_writepage(struct btrfs_bio *bbio) > > if (bio->bi_status || > test_bit(EXTENT_BUFFER_WRITE_ERR, &eb->bflags)) { > - ClearPageUptodate(page); > + btrfs_page_clear_uptodate(fs_info, page, > + eb->start, eb->len); > set_btree_ioerr(page, eb); > } >
On Tue, Mar 14, 2023 at 04:06:46PM +0800, Qu Wenruo wrote: > > > On 2023/3/14 14:16, Christoph Hellwig wrote: >> Call btrfs_page_clear_uptodate instead of ClearPageUptodate to properly >> manage the error bit for the subpage case. > > I guess you mean "uptodate bit". Indeed.
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index 302af9b01bda2a..2bc141b3f3bc4b 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c @@ -1914,7 +1914,8 @@ static void end_bio_subpage_eb_writepage(struct btrfs_bio *bbio) if (bio->bi_status || test_bit(EXTENT_BUFFER_WRITE_ERR, &eb->bflags)) { - ClearPageUptodate(page); + btrfs_page_clear_uptodate(fs_info, page, + eb->start, eb->len); set_btree_ioerr(page, eb); }
Call btrfs_page_clear_uptodate instead of ClearPageUptodate to properly manage the error bit for the subpage case. Reported-by: Qu Wenruo <quwenruo.btrfs@gmx.com> Signed-off-by: Christoph Hellwig <hch@lst.de> --- fs/btrfs/extent_io.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)