Re: [PATCH 1/5] btrfs-progs: check: return value of check_extent_refs()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Sep 27, 2017 at 02:34:36PM +0800, Su Yue wrote:
> In original check mode(without option "--repair"), check_extent_refs()
> always returns 0.
> 
> Add a variable @error to record status while checking extents.
> At the end of check_extent_refs(), let it return -EIO if @error is
> nonzero.
> 
> Example:
> $ btrfs check bad-extent-inline-ref-type.raw
> Checking filesystem on bad-extent-inline-ref-type.raw
> UUID: 1942d6fe-617b-4499-9982-cc8ffae5447f
> checking extents
> corrupt extent record: key 29360128 169 16384
> ref mismatch on [29360128 16384] extent item 0, found 1
> Backref 29360128 parent 5 root 5 not found in extent tree
> backpointer mismatch on [29360128 16384]
> bad extent [29360128, 29376512), type mismatch with chunk
> checking free space cache
> checking fs roots
> checking csums
> checking root refs
> found 114688 bytes used, no error found
> total csum bytes: 0
> total tree bytes: 114688
> total fs tree bytes: 32768
> total extent tree bytes: 16384
> btree space waste bytes: 109471
> file data blocks allocated: 0
>  referenced 0
> 
> Signed-off-by: Su Yue <suy.fnst@xxxxxxxxxxxxxx>

With this patch applied, the test fsck/006 fails, is that intentional?

Log from the last failing testcase:

checking extents
ref mismatch on [15474688 905216] extent item 1, found 4
Data backref 15474688 parent 31817728 owner 0 offset 0 num_refs 0 not found in extent tree
Incorrect local backref count on 15474688 parent 31817728 owner 0 offset 0 found 1 wanted 0 back 0x12d02f0
Data backref 15474688 parent 30883840 owner 0 offset 0 num_refs 0 not found in extent tree
Incorrect local backref count on 15474688 parent 30883840 owner 0 offset 0 found 1 wanted 0 back 0x12cd710
Data backref 15474688 parent 31326208 owner 0 offset 0 num_refs 0 not found in extent tree
Incorrect local backref count on 15474688 parent 31326208 owner 0 offset 0 found 1 wanted 0 back 0x12d2b80
backpointer mismatch on [15474688 905216]
ERROR: errors found in extent allocation tree or chunk allocation
checking free space cache
checking fs roots
checking csums
checking root refs
Checking filesystem on test.img
UUID: 3857c23d-4219-4600-a636-ac7707dc4ff3
cache and super generation don't match, space cache will be invalidated
found 6291456 bytes used, error(s) found
total csum bytes: 660
total tree bytes: 786432
total fs tree bytes: 688128
total extent tree bytes: 16384
btree space waste bytes: 459860
file data blocks allocated: 35536896
 referenced 25890816
failed: /mnt/big/dsterba/backup-labs-subv/gits/btrfs-progs/btrfs check test.img

I haven't tried with the other patches applied, so it might get actually fixed.
Even in that case, I'd rather keep the branches bisectable.
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux