Hi Qu,

Am 01.01.2017 um 10:32 schrieb Qu Wenruo:
> Hi Stefan,
> 
> I'm trying to push it to for-next (will be v4.11), but no response yet.
> 
> It would be quite nice for you to test the following git pull and give
> some feedback, so that we can merge it faster.
> 
> https://mail-archive.com/linux-btrfs@vger.kernel.org/msg60418.html

I'm also getting a notifier that wang's email does not exist anymore
(wangxg.f...@cn.fujitsu.com).

I would like to test that branch will need some time todo so. Last time
i tried 4.10-rc1 i had the same problems like this guy:
https://www.marc.info/?l=linux-btrfs&m=148338312525137&w=2

Stefan

> Thanks,
> Qu
> 
> On 12/31/2016 03:31 PM, Stefan Priebe - Profihost AG wrote:
>> 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
>>
--
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