Hi,

I have a btrfs filesystem with a corrupt block. After finding errors
such as 

BTRFS critical (device nvme0n1p6): corrupt leaf: root=5
block=154977681408 slot=19 ino=8708079, invalid mode: has 00 expect
valid S_IF* bit(s)

spamming my dmesg, I examined the block with 

btrfs-debug-tree -b 154977681408 /dev/nvme0n1p6

I found the source of the error in this line:

item 19 key (8708079 INODE_ITEM 0) itemoff 14769 itemsize 160   inode 
generation 292430 transid 292449 size 0 block group 0 mode 0 links 1
uid 0 gid 0 rdev 0 flags 0x0

I then ran 

find <mount point> -type f -exec cp {} /dev/null \;

to look for corrupt files. Almost all files that appeared in the list
also appeared in the btrfs-debug-tree command above.

I conclude that this block is corrupt.

Two questions:

1. Given that none of the files in the list are critical, I'd like to
remove the block, or at least the files. Is this possible? How?

2. Is this an indicator of a problem with the drive? smartctl does not
give errors, nor does scrubbing the file system.

More info below:

# uname -a
Linux debian-x1yoga 5.2.0-2-amd64 #1 SMP Debian 5.2.9-2 (2019-08-21)
x86_64 GNU/Linux

#   btrfs --version
Btrfs v3.17

#   btrfs fi show
Label: none  uuid: 91624ec9-49ef-469e-a949-7699dc681c52
        Total devices 1 FS bytes used 13.27GiB
        devid    1 size 19.26GiB used 16.03GiB path /dev/nvme0n1p2

Label: none  uuid: 4133c951-4327-4040-83ed-9e8a71270cc2
        Total devices 1 FS bytes used 6.85GiB
        devid    1 size 9.93GiB used 9.51GiB path /dev/nvme0n1p3

Label: none  uuid: be5b72e2-5cd1-498e-b38c-d83b10548ef3
        Total devices 1 FS bytes used 174.09GiB
        devid    1 size 182.99GiB used 182.99GiB path /dev/nvme0n1p6

Label: none  uuid: bbba344c-b256-4509-ac49-4b69b1a73607
        Total devices 1 FS bytes used 1.93MiB
        devid    1 size 381.00MiB used 381.00MiB path /dev/nvme0n1p5

Btrfs v3.17

# btrfs fi df /home
Data, single: total=180.98GiB, used=173.41GiB
System, single: total=4.00MiB, used=48.00KiB
Metadata, single: total=2.01GiB, used=698.38MiB
GlobalReserve, single: total=512.00MiB, used=0.00B

The only error in dmesg is the one referred to above.

I appreciate any help! 

Cheers,
Rann

Reply via email to