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.
-

Reply via email to