diff mbox series

btrfs: zoned: Put block group after final usage

Message ID 20220307133002.28765-1-nborisov@suse.com (mailing list archive)
State New, archived
Headers show
Series btrfs: zoned: Put block group after final usage | expand

Commit Message

Nikolay Borisov March 7, 2022, 1:30 p.m. UTC
It's counter-intuitive (and wrong) to put the block group _before_ the
final usage in submit_eb_page. Fix it by re-ordering the call to
btrfs_put_block_group after its final reference. Also fix a minor typo
in 'implies'


Fixes: be1a1d7a5d24 ("btrfs: zoned: finish fully written block group")
Signed-off-by: Nikolay Borisov <nborisov@suse.com>
---
 fs/btrfs/extent_io.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

--
2.25.1

Comments

Johannes Thumshirn March 7, 2022, 1:57 p.m. UTC | #1
Looks good,
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
David Sterba March 7, 2022, 1:59 p.m. UTC | #2
On Mon, Mar 07, 2022 at 03:30:02PM +0200, Nikolay Borisov wrote:
> It's counter-intuitive (and wrong) to put the block group _before_ the
> final usage in submit_eb_page. Fix it by re-ordering the call to
> btrfs_put_block_group after its final reference. Also fix a minor typo
> in 'implies'
> 
> 
> Fixes: be1a1d7a5d24 ("btrfs: zoned: finish fully written block group")
> Signed-off-by: Nikolay Borisov <nborisov@suse.com>

Added to misc-next, thanks.
diff mbox series

Patch

diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index 3f13ff0affdb..ebda09c207f1 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -4786,11 +4786,14 @@  static int submit_eb_page(struct page *page, struct writeback_control *wbc,
 		return ret;
 	}
 	if (cache) {
-		/* Impiles write in zoned mode */
-		btrfs_put_block_group(cache);
-		/* Mark the last eb in a block group */
+		/*
+		 * Implies write in zoned mode.
+		 *
+		 * Mark the last eb in a block group
+		 */
 		if (cache->seq_zone && eb->start + eb->len == cache->zone_capacity)
 			set_bit(EXTENT_BUFFER_ZONE_FINISH, &eb->bflags);
+		btrfs_put_block_group(cache);
 	}
 	ret = write_one_eb(eb, wbc, epd);
 	free_extent_buffer(eb);