mbox series

[0/3] btrfs-progs: convert: better ENOSPC handling

Message ID 20200729084038.78151-1-wqu@suse.com (mailing list archive)
Headers show
Series btrfs-progs: convert: better ENOSPC handling | expand

Message

Qu Wenruo July 29, 2020, 8:40 a.m. UTC
This patchset is to address a bug report [1], where even with the bit
overflow bug fixed, the user is still unable to convert an ext4 fs to
btrfs.

The error is -ENOSPC, which triggers BUG_ON() and brings the end to the
convertion.

We're still waiting for the image dump to determine what's the real
cause is, but considering the user is still reporting around 40% free
space, I guess it's something wrong with the extent allocator.

But still, we can enhance btrfs-convert to make it handle errors more
gracefully, with better error message, and even some debugging info like
the available space / total space ratio.

Qu Wenruo (3):
  btrfs-progs: convert: handle errors better in ext2_copy_inodes()
  btrfs-progs: convert: update error message to reflect original fs
    unmodified cases
  btrfs-progs: convert: report available space before convertion happens

 convert/common.h      |  9 +++++++++
 convert/main.c        | 34 +++++++++++++++++++++++++++++++---
 convert/source-ext2.c | 42 +++++++++++++++++++++++++++++++-----------
 convert/source-fs.c   |  1 +
 4 files changed, 72 insertions(+), 14 deletions(-)

Comments

David Sterba July 31, 2020, 4:16 p.m. UTC | #1
On Wed, Jul 29, 2020 at 04:40:35PM +0800, Qu Wenruo wrote:
> This patchset is to address a bug report [1], where even with the bit
> overflow bug fixed, the user is still unable to convert an ext4 fs to
> btrfs.
> 
> The error is -ENOSPC, which triggers BUG_ON() and brings the end to the
> convertion.
> 
> We're still waiting for the image dump to determine what's the real
> cause is, but considering the user is still reporting around 40% free
> space, I guess it's something wrong with the extent allocator.
> 
> But still, we can enhance btrfs-convert to make it handle errors more
> gracefully, with better error message, and even some debugging info like
> the available space / total space ratio.
> 
> Qu Wenruo (3):
>   btrfs-progs: convert: handle errors better in ext2_copy_inodes()
>   btrfs-progs: convert: update error message to reflect original fs
>     unmodified cases
>   btrfs-progs: convert: report available space before convertion happens

Added to devel, thanks. With the fixup and I've updated the space report
to look like this:

create btrfs filesystem:
        blocksize: 4096
        nodesize:  16384
        features:  extref, skinny-metadata (default)
        checksum:  crc32c
free space report:
        total:     2147483648
        free:      1610547200 (75.00%)
Qu Wenruo July 31, 2020, 11:37 p.m. UTC | #2
On 2020/8/1 上午12:16, David Sterba wrote:
> On Wed, Jul 29, 2020 at 04:40:35PM +0800, Qu Wenruo wrote:
>> This patchset is to address a bug report [1], where even with the bit
>> overflow bug fixed, the user is still unable to convert an ext4 fs to
>> btrfs.
>>
>> The error is -ENOSPC, which triggers BUG_ON() and brings the end to the
>> convertion.
>>
>> We're still waiting for the image dump to determine what's the real
>> cause is, but considering the user is still reporting around 40% free
>> space, I guess it's something wrong with the extent allocator.
>>
>> But still, we can enhance btrfs-convert to make it handle errors more
>> gracefully, with better error message, and even some debugging info like
>> the available space / total space ratio.
>>
>> Qu Wenruo (3):
>>   btrfs-progs: convert: handle errors better in ext2_copy_inodes()
>>   btrfs-progs: convert: update error message to reflect original fs
>>     unmodified cases
>>   btrfs-progs: convert: report available space before convertion happens
> 
> Added to devel, thanks. With the fixup and I've updated the space report
> to look like this:
> 
> create btrfs filesystem:
>         blocksize: 4096
>         nodesize:  16384
>         features:  extref, skinny-metadata (default)
>         checksum:  crc32c
> free space report:
>         total:     2147483648
>         free:      1610547200 (75.00%)
> 
Wow, that looks even better!

Thanks for the hot fix and enhanced UI!
Qu