Any news on this series? I can't see it in 4.9 nor in 4.10-rc

Stefan

Am 11.11.2016 um 09:39 schrieb Wang Xiaoguang:
> When having compression enabled, Stefan Priebe ofen got enospc errors
> though fs still has much free space. Qu Wenruo also has submitted a
> fstests test case which can reproduce this bug steadily, please see
> url: https://patchwork.kernel.org/patch/9420527
> 
> First patch[1/3] "btrfs: improve inode's outstanding_extents computation" is 
> to
> fix outstanding_extents and reserved_extents account issues. This issue was 
> revealed
> by modifying BTRFS_MAX_EXTENT_SIZE(128MB) to 64KB, When modifying
> BTRFS_MAX_EXTENT_SIZE(128MB) to 64KB, fsstress test often gets these warnings 
> from
> btrfs_destroy_inode():
>         WARN_ON(BTRFS_I(inode)->outstanding_extents);
>         WARN_ON(BTRFS_I(inode)->reserved_extents);
> Please see this patch's commit message for detailed info, and this patch is
> necessary to patch2 and patch3.
> 
> For false enospc, the root reasson is that for compression, its max extent 
> size will
> be 128k, not 128MB. If we still use 128MB as max extent size to reserve 
> metadata for
> compression, obviously it's not appropriate. In patch "btrfs: Introduce 
> COMPRESS
> reserve type to fix false enospc for compression" commit message,
> we explain why false enospc error occurs, please see it for detailed info.
> 
> To fix this issue, we introduce a new enum type:
>       enum btrfs_metadata_reserve_type {
>               BTRFS_RESERVE_NORMAL,
>               BTRFS_RESERVE_COMPRESS,
>       };
> For btrfs_delalloc_[reserve|release]_metadata() and
> btrfs_delalloc_[reserve|release]_space(), we introce a new 
> btrfs_metadata_reserve_type
> argument, then if a path needs to go compression, we pass 
> BTRFS_RESERVE_COMPRESS,
> otherwise pass BTRFS_RESERVE_NORMAL.
> 
> With these patchs, Stefan no longer saw such false enospc errors, and Qu 
> Wenruo's
> fstests test case will also pass. I have also run whole fstests multiple 
> times,
> no regression occurs, thanks.
> 
> Wang Xiaoguang (3):
>   btrfs: improve inode's outstanding_extents computation
>   btrfs: introduce type based delalloc metadata reserve
>   btrfs: Introduce COMPRESS reserve type to fix false enospc for
>     compression
> 
>  fs/btrfs/ctree.h             |  36 +++++--
>  fs/btrfs/extent-tree.c       |  52 ++++++---
>  fs/btrfs/extent_io.c         |  61 ++++++++++-
>  fs/btrfs/extent_io.h         |   5 +
>  fs/btrfs/file.c              |  25 +++--
>  fs/btrfs/free-space-cache.c  |   6 +-
>  fs/btrfs/inode-map.c         |   6 +-
>  fs/btrfs/inode.c             | 246 
> ++++++++++++++++++++++++++++++++++---------
>  fs/btrfs/ioctl.c             |  16 +--
>  fs/btrfs/relocation.c        |  14 ++-
>  fs/btrfs/tests/inode-tests.c |  15 +--
>  11 files changed, 381 insertions(+), 101 deletions(-)
> 
--
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

Reply via email to