All of lore.kernel.org
 help / color / mirror / Atom feed
From: Qu WenRuo <wqu@suse.com>
To: Ferry Toth <fntoth@gmail.com>,
	"linux-btrfs@vger.kernel.org" <linux-btrfs@vger.kernel.org>
Subject: Re: [PATCH 0/3] btrfs-progs: Add check and repair for invalid inode generation
Date: Fri, 18 Oct 2019 23:50:00 +0000	[thread overview]
Message-ID: <b1c32c4b-734f-0f4e-44d1-cb4ef69b7fe1@suse.com> (raw)
In-Reply-To: <36d45e31-f125-4b21-a68e-428f807180f7@gmail.com>



On 2019/10/19 上午4:32, Ferry Toth wrote:
> Op 24-09-2019 om 10:11 schreef Qu Wenruo:
>> We have at least two user reports about bad inode generation makes
>> kernel reject the fs.
> 
> May I add my report? I just upgraded Ubuntu from 19.04 -> 19.10 so
> kernel went from 5.0 -> 5.3 (but I was using 4.15 too).
> 
> Booting 5.3 leaves me in initramfs as I have /boot on @boot and / on /@
> 
> In initramfs I can try to mount but get something like
> btrfs critical corrupt leaf invalid inode generation open_ctree failed
> 
> Booting old kernel works just as before, no errors.
> 
>> According to the creation time, the inode is created by some 2014
>> kernel.
> 
> How do I get the creation time?

# btrfs ins dump-tree -b <the bytenr reported by kernel> <your device>
> 
>> And the generation member of INODE_ITEM is not updated (unlike the
>> transid member) so the error persists until latest tree-checker detects.
>>
>> Even the situation can be fixed by reverting back to older kernel and
>> copying the offending dir/file to another inode and delete the offending
>> one, it still should be done by btrfs-progs.
>>
> How to find the offending dir/file from the command line manually?

# find <mount point> -inum <inode number>

Thanks,
Qu

> 
>> This patchset adds such check and repair ability to btrfs-check, with a
>> simple test image.
>>
>> Qu Wenruo (3):
>>    btrfs-progs: check/lowmem: Add check and repair for invalid inode
>>      generation
>>    btrfs-progs: check/original: Add check and repair for invalid inode
>>      generation
>>    btrfs-progs: fsck-tests: Add test image for invalid inode generation
>>      repair
>>
>>   check/main.c                                  |  50 +++++++++++-
>>   check/mode-lowmem.c                           |  76 ++++++++++++++++++
>>   check/mode-original.h                         |   1 +
>>   .../.lowmem_repairable                        |   0
>>   .../bad_inode_geneartion.img.xz               | Bin 0 -> 2012 bytes
>>   5 files changed, 126 insertions(+), 1 deletion(-)
>>   create mode 100644
>> tests/fsck-tests/043-bad-inode-generation/.lowmem_repairable
>>   create mode 100644
>> tests/fsck-tests/043-bad-inode-generation/bad_inode_geneartion.img.xz
>>
> 

  reply	other threads:[~2019-10-19  0:08 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-24  8:11 [PATCH 0/3] btrfs-progs: Add check and repair for invalid inode generation Qu Wenruo
2019-09-24  8:11 ` [PATCH 1/3] btrfs-progs: check/lowmem: " Qu Wenruo
2019-09-30 11:36   ` Nikolay Borisov
2019-09-30 12:24     ` Qu Wenruo
2019-09-30 13:34       ` Nikolay Borisov
2019-09-30 14:05         ` Qu Wenruo
2019-09-24  8:11 ` [PATCH 2/3] btrfs-progs: check/original: " Qu Wenruo
2019-09-30  8:41   ` Nikolay Borisov
2019-09-30  9:00     ` Qu Wenruo
2019-09-24  8:11 ` [PATCH 3/3] btrfs-progs: fsck-tests: Add test image for invalid inode generation repair Qu Wenruo
2019-10-18 20:32 ` [PATCH 0/3] btrfs-progs: Add check and repair for invalid inode generation Ferry Toth
2019-10-18 23:50   ` Qu WenRuo [this message]
2019-10-19 16:24     ` Ferry Toth
2019-10-20  0:26       ` Qu Wenruo
2019-10-20  0:51         ` Qu Wenruo
2019-10-20 13:04           ` Ferry Toth
2019-10-20 13:15             ` Qu WenRuo
2019-10-20 13:29               ` Ferry Toth
2019-10-20 14:11                 ` Qu Wenruo
2019-10-20 14:24                   ` Ferry Toth
2019-10-21 16:01                     ` Ferry Toth
2019-10-20 11:50         ` Ferry Toth

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b1c32c4b-734f-0f4e-44d1-cb4ef69b7fe1@suse.com \
    --to=wqu@suse.com \
    --cc=fntoth@gmail.com \
    --cc=linux-btrfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.