[v2.1,0/3] btrfs-progs: Check and repair invalid root item generation
mbox series

Message ID 20190812063422.22219-1-wqu@suse.com
Headers show
Series
  • btrfs-progs: Check and repair invalid root item generation
Related show

Message

Qu Wenruo Aug. 12, 2019, 6:34 a.m. UTC
Kernel is going to reject invalid root generation.

Consider the existing checks are causing some error reports, we should
handle such problem in advance, so that's the patchset is going to do,
check and repair such invalid root generation.

Changelog:
v2:
- Use existing recow_extent_buffer() to do the repair

v2.1:
- Add beacon file to allow lowmem mode repair for newly added test case.

Qu Wenruo (3):
  btrfs-progs: check/lowmem: Check and repair root generation
  btrfs-progs: check/original: Check and repair root item geneartion
  btrfs-progs: fsck-tests: Add test case for invalid root generation

 check/main.c                                  |  57 +++++++-----------
 check/mode-common.c                           |  36 +++++++++++
 check/mode-common.h                           |   1 +
 check/mode-lowmem.c                           |  17 ++++++
 check/mode-lowmem.h                           |   1 +
 .../.lowmem_repairable                        |   0
 .../default_case.img                          | Bin 0 -> 3072 bytes
 7 files changed, 76 insertions(+), 36 deletions(-)
 create mode 100644 tests/fsck-tests/041-invalid-root-generation/.lowmem_repairable
 create mode 100644 tests/fsck-tests/041-invalid-root-generation/default_case.img

Comments

Nikolay Borisov Aug. 12, 2019, 8:22 a.m. UTC | #1
On 12.08.19 г. 9:34 ч., Qu Wenruo wrote:
> Kernel is going to reject invalid root generation.
> 
> Consider the existing checks are causing some error reports, we should
> handle such problem in advance, so that's the patchset is going to do,
> check and repair such invalid root generation.
> 
> Changelog:
> v2:
> - Use existing recow_extent_buffer() to do the repair
> 
> v2.1:
> - Add beacon file to allow lowmem mode repair for newly added test case.
> 
> Qu Wenruo (3):
>   btrfs-progs: check/lowmem: Check and repair root generation
>   btrfs-progs: check/original: Check and repair root item geneartion
>   btrfs-progs: fsck-tests: Add test case for invalid root generation
> 
>  check/main.c                                  |  57 +++++++-----------
>  check/mode-common.c                           |  36 +++++++++++
>  check/mode-common.h                           |   1 +
>  check/mode-lowmem.c                           |  17 ++++++
>  check/mode-lowmem.h                           |   1 +
>  .../.lowmem_repairable                        |   0
>  .../default_case.img                          | Bin 0 -> 3072 bytes
>  7 files changed, 76 insertions(+), 36 deletions(-)
>  create mode 100644 tests/fsck-tests/041-invalid-root-generation/.lowmem_repairable
>  create mode 100644 tests/fsck-tests/041-invalid-root-generation/default_case.img
> 

The patchset looks rather trivial - just use recow_extent_buffer when
you find a root with larger generation. So:

Reviewed-by: Nikolay Borisov <nborisov@suse.com>
David Sterba Aug. 26, 2019, 5:07 p.m. UTC | #2
On Mon, Aug 12, 2019 at 02:34:19PM +0800, Qu Wenruo wrote:
> Kernel is going to reject invalid root generation.
> 
> Consider the existing checks are causing some error reports, we should
> handle such problem in advance, so that's the patchset is going to do,
> check and repair such invalid root generation.
> 
> Changelog:
> v2:
> - Use existing recow_extent_buffer() to do the repair
> 
> v2.1:
> - Add beacon file to allow lowmem mode repair for newly added test case.
> 
> Qu Wenruo (3):
>   btrfs-progs: check/lowmem: Check and repair root generation
>   btrfs-progs: check/original: Check and repair root item geneartion
>   btrfs-progs: fsck-tests: Add test case for invalid root generation

Added to devel, thanks!