CC Josef. It's a followup of patch that went to 4.8-rc4 so we'd better get it to 4.8.
On Fri, Aug 26, 2016 at 11:33:14AM +0800, Wang Xiaoguang wrote: > When replaying extents, there is no need to update bytes_may_use > in btrfs_alloc_logged_file_extent(), otherwise it'll trigger a > WARN_ON about bytes_may_use. > > Fixes: ("btrfs: update btrfs_space_info's bytes_may_use timely") > Signed-off-by: Wang Xiaoguang <wangxg.f...@cn.fujitsu.com> > --- > fs/btrfs/extent-tree.c | 12 +++++++++--- > 1 file changed, 9 insertions(+), 3 deletions(-) > > diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c > index ae8f9aa..7a15990 100644 > --- a/fs/btrfs/extent-tree.c > +++ b/fs/btrfs/extent-tree.c > @@ -8242,6 +8242,7 @@ int btrfs_alloc_logged_file_extent(struct > btrfs_trans_handle *trans, > { > int ret; > struct btrfs_block_group_cache *block_group; > + struct btrfs_space_info *space_info; > > /* > * Mixed block groups will exclude before processing the log so we only > @@ -8257,9 +8258,14 @@ int btrfs_alloc_logged_file_extent(struct > btrfs_trans_handle *trans, > if (!block_group) > return -EINVAL; > > - ret = btrfs_add_reserved_bytes(block_group, ins->offset, > - ins->offset, 0); > - BUG_ON(ret); /* logic error */ > + space_info = block_group->space_info; > + spin_lock(&space_info->lock); > + spin_lock(&block_group->lock); > + space_info->bytes_reserved += ins->offset; > + block_group->reserved += ins->offset; > + spin_unlock(&block_group->lock); > + spin_unlock(&space_info->lock); > + > ret = alloc_reserved_file_extent(trans, root, 0, root_objectid, > 0, owner, offset, ins, 1); > btrfs_put_block_group(block_group); > -- > 2.9.0 > > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in > the body of a message to majord...@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html