2019-04-05 10:15, Qu Wenruo:
On 2019/4/5 下午3:41, Nik. wrote:
Below is the stderr of both commands:
# btrfs inspect dump-tree -t chunk /dev/md0>DT-chunk.log
# btrfs inspect dump-tree -t extent /dev/md0>DT-extent.log
ERROR: leaf 1894009225216 slot 30 pointer invalid, offset 146038 size 37
leaf data limit 16283
ERROR: skip remaining slots
Since the output on stdout is pretty long even after gzip, I am
providing only the output of the first command as attachment. The output
of the second command (25 MB after gzip -9) can be downloaded here:
https://cloud.avgustinov.eu/index.php/s/AgbwWyCrbYjenq8
Sorry, I should have use a more specific command to get a smaller output.
But anyway, your output is good enough for me to craft the fix patch.
Here is the dirty fix branch:
https://github.com/adam900710/btrfs-progs/tree/dirty_fix_for_nik
Compile the btrfs-progs as usual.
Just a late hint, you can disable document/btrfs-convert to reduce the
dependency:
$ ./configure --disable-documentation --disable-convert
Then, inside btrfs-progs directory, call:
# ./btrfs-corrupt-block -X /dev/md0
incorrect offsets 15003 146075
Open ctree failed
Actually there was one warning during make, I don't know of it is relevant:
[CC] check/main.o
check/main.c: In function ‘try_repair_inode’:
check/main.c:2688:5: warning: ‘ret’ may be used uninitialized in this
function [-Wmaybe-uninitialized]
if (!ret) {
^
check/main.c:2666:6: note: ‘ret’ was declared here
int ret;
^~~
The previous steps were as follow (output ommited, since nothing
unexpected happened):
#git clone --single-branch -v -b dirty_fix_for_nik
https://github.com/adam900710/btrfs-progs.git
#cd btrfs-progs/
#./autogen.sh
#./configure --disable-documentation --disable-convert
#make
Did I got the right branch? Or miss any step?
Kind regards,
Nik.
--
If everything goes correctly, it should output something like:
Successfully repaired tree block at 1894009225216
(And please ignore any grammar error in my code)
After that, please run a "btrfs check --readonly" to ensure no other bit
flip in your fs.
Thanks,
Qu
Hope this is ok.
Regards,
Nik.
-