This is a note to let you know that I've just added the patch titled btrfs: fix percent calculation for bg reclaim message to the 6.2-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: btrfs-fix-percent-calculation-for-bg-reclaim-message.patch and it can be found in the queue-6.2 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From 95cd356ca23c3807b5f3503687161e216b1c520d Mon Sep 17 00:00:00 2001 From: Johannes Thumshirn <johannes.thumshirn@xxxxxxx> Date: Tue, 21 Feb 2023 10:11:24 -0800 Subject: btrfs: fix percent calculation for bg reclaim message From: Johannes Thumshirn <johannes.thumshirn@xxxxxxx> commit 95cd356ca23c3807b5f3503687161e216b1c520d upstream. We have a report, that the info message for block-group reclaim is crossing the 100% used mark. This is happening as we were truncating the divisor for the division (the block_group->length) to a 32bit value. Fix this by using div64_u64() to not truncate the divisor. In the worst case, it can lead to a div by zero error and should be possible to trigger on 4 disks RAID0, and each device is large enough: $ mkfs.btrfs -f /dev/test/scratch[1234] -m raid1 -d raid0 btrfs-progs v6.1 [...] Filesystem size: 40.00GiB Block group profiles: Data: RAID0 4.00GiB <<< Metadata: RAID1 256.00MiB System: RAID1 8.00MiB Reported-by: Forza <forza@xxxxxxxxxxxx> Link: https://lore.kernel.org/linux-btrfs/e99483.c11a58d.1863591ca52@xxxxxxxxxxxx/ Fixes: 5f93e776c673 ("btrfs: zoned: print unusable percentage when reclaiming block groups") CC: stable@xxxxxxxxxxxxxxx # 5.15+ Reviewed-by: Anand Jain <anand.jain@xxxxxxxxxx> Reviewed-by: Qu Wenruo <wqu@xxxxxxxx> Signed-off-by: Johannes Thumshirn <johannes.thumshirn@xxxxxxx> Reviewed-by: David Sterba <dsterba@xxxxxxxx> [ add Qu's note ] Signed-off-by: David Sterba <dsterba@xxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- fs/btrfs/block-group.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) --- a/fs/btrfs/block-group.c +++ b/fs/btrfs/block-group.c @@ -1687,7 +1687,8 @@ void btrfs_reclaim_bgs_work(struct work_ btrfs_info(fs_info, "reclaiming chunk %llu with %llu%% used %llu%% unusable", - bg->start, div_u64(bg->used * 100, bg->length), + bg->start, + div64_u64(bg->used * 100, bg->length), div64_u64(zone_unusable * 100, bg->length)); trace_btrfs_reclaim_block_group(bg); ret = btrfs_relocate_chunk(fs_info, bg->start); Patches currently in stable-queue which might be from johannes.thumshirn@xxxxxxx are queue-6.2/btrfs-fix-unnecessary-increment-of-read-error-stat-on-write-error.patch queue-6.2/btrfs-fix-percent-calculation-for-bg-reclaim-message.patch