On Tue, Sep 24, 2024 at 05:38:52PM -0300, Diogo Jahchan Koike wrote: > From: Filipe Manana <fdmanana@xxxxxxxx> > > commit f8f210dc84709804c9f952297f2bfafa6ea6b4bd upstream. > > When updating the global block reserve, we account for the 6 items needed > by an unlink operation and the 6 delayed references for each one of those > items. However the calculation for the delayed references is not correct > in case we have the free space tree enabled, as in that case we need to > touch the free space tree as well and therefore need twice the number of > bytes. So use the btrfs_calc_delayed_ref_bytes() helper to calculate the > number of bytes need for the delayed references at > btrfs_update_global_block_rsv(). > > Reviewed-by: Josef Bacik <josef@xxxxxxxxxxxxxx> > Signed-off-by: Filipe Manana <fdmanana@xxxxxxxx> > Reviewed-by: David Sterba <dsterba@xxxxxxxx> > Signed-off-by: David Sterba <dsterba@xxxxxxxx> > [Diogo: this patch has been cherry-picked from the original commit; > conflicts included lack of a define (picked from commit 5630e2bcfe223) > and lack of btrfs_calc_delayed_ref_bytes (picked from commit 0e55a54502b97) > - changed const struct -> struct for compatibility.] > Signed-off-by: Diogo Jahchan Koike <djahchankoike@xxxxxxxxx> > > --- > Fixes WARNING in btrfs_chunk_alloc (2) [0] > [0]: https://syzkaller.appspot.com/bug?extid=57de2b05959bc1e659af Now queued up, thanks. greg k-h