All of lore.kernel.org
 help / color / mirror / Atom feed
From: Qu Wenruo <quwenruo@cn.fujitsu.com>
To: Satoru Takeuchi <takeuchi_satoru@jp.fujitsu.com>,
	Ed Tomlinson <edt@aei.ca>, <linux-btrfs@vger.kernel.org>
Subject: Re: [PATCH 0/6] More generic inode nlink repair function
Date: Wed, 3 Dec 2014 15:41:19 +0800	[thread overview]
Message-ID: <547EBE9F.3070805@cn.fujitsu.com> (raw)
In-Reply-To: <547EB7F1.9090408@jp.fujitsu.com>


-------- Original Message --------
Subject: Re: [PATCH 0/6] More generic inode nlink repair function
From: Satoru Takeuchi <takeuchi_satoru@jp.fujitsu.com>
To: Ed Tomlinson <edt@aei.ca>, <linux-btrfs@vger.kernel.org>
Date: 2014年12月03日 15:12
> Hi,
>
> (2014/12/03 14:03), Ed Tomlinson wrote:
>> Hi,
>>
>> I'd really like to see these patches included in btrfsck - they 
>> repaired my fs.   Once
>> Qu got them working they found additional corruptions.  This time 
>> there was no crash or stall
>> just an umount that left (chromium) files unlinked...  The bug with 
>> these files has been
>> hitting me for a while - just did not recognize what was causing it 
>> or notice the corruption.
>>
>> The only objection I have seen to these patches is that they may 
>> create a "lost+found"
>> directory.  I submit this is an expected behavior for a fsck 
>> utility.  When --repair is specified
>> I expect a fsck to make changes to my fs one of which may be adding 
>> and populating a
>> lost+found directory.
>
> How about making lost+found on mkfs.btrfs like ext4?
>
> Thanks,
> Satoru
>
I hope most user won't see the lost+found dir.

Due to the COW feature especially on all the metadata,
btrfs is *supposed* to be fsck free and self repairing fs, make 
lost+found at mkfs time
may make btrfs not so special among the old time ext* fs.

IMHO, most user will not see the lost+found dir, if hardware and kernel 
works as they should be,
usual bit flip can be recovered by the default DUP or higher RAID 
metadata profile.
The lost+found dir will only occur if the fs is really badly damaged or 
kernel bug.
(or intently damaged by btrfs-corrupt-block for QA reason).

With the maturing of btrfs, such case should be more and more rare and 
most user will forget
the fact that btrfsck will create lost+found dir, but it will still be 
the last hope.
So lost+found should only occur when it is needed, and when it is needed 
it will be created.

Thanks,
Qu
>>
>> Thanks
>> Ed Tomlinson
>>
>> PS. It would be very interesting to find out WHY these files are 
>> ending up unlinked.  Ideas?
>>
>>
>> On Wednesday 03 December 2014 12:18:26 you wrote:
>>> Update on patch 4 and 6, other is not changed.
>>> This nlink repair function is more generic than the original one.
>>>
>>> The old one can only handle a specific case that the inode_ref is
>>> invalid, either point to a non-exist parent inode or point to a invalid
>>> inode(not dir or conflicting index/name).
>>>
>>> The new one will reset all the backref, no matter it is valid or not,
>>> and re-add all the valid backref, this make the nlink handles more
>>> corrupt cases.
>>>
>>> Qu Wenruo (6):
>>>    btrfs-progs: print root dir verbose error in fsck
>>>    btrfs-progs: Import btrfs_insert/del/lookup_extref() functions.
>>>    btrfs-progs: Import lookup/del_inode_ref() function.
>>>    btrfs-progs: Add btrfs_unlink() and btrfs_add_link() functions.
>>>    btrfs-progs: Add btrfs_mkdir() function for the incoming 
>>> 'lost+found'
>>>         fsck mechanism.
>>>    btrfs-progs: Add fixing function for inodes whose nlink dismatch
>>>
>>>   Makefile     |   2 +-
>>>   cmds-check.c | 311 ++++++++++++++++++++++++++++++++++++--
>>>   ctree.c      |   6 +
>>>   ctree.h      |  38 +++++
>>>   inode-item.c | 318 +++++++++++++++++++++++++++++++++++++++
>>>   inode.c      | 484 
>>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>>   6 files changed, 1148 insertions(+), 11 deletions(-)
>>>   create mode 100644 inode.c
>>>
>>>
>>
>> -- 
>> To unsubscribe from this list: send the line "unsubscribe 
>> linux-btrfs" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>
>
> -- 
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


  reply	other threads:[~2014-12-03  7:41 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-03  4:18 [PATCH 0/6] More generic inode nlink repair function Qu Wenruo
2014-12-03  4:18 ` [PATCH RESEND 1/6] btrfs-progs: print root dir verbose error in fsck Qu Wenruo
2014-12-03  4:18 ` [PATCH RESEND 2/6] btrfs-progs: Import btrfs_insert/del/lookup_extref() functions Qu Wenruo
2014-12-03  4:18 ` [PATCH RESEND 3/6] btrfs-progs: Import lookup/del_inode_ref() function Qu Wenruo
2014-12-03  4:18 ` [PATCH v3 4/6] btrfs-progs: Add btrfs_unlink() and btrfs_add_link() functions Qu Wenruo
2014-12-03  4:18 ` [PATCH RESEND v2 5/6] btrfs-progs: Add btrfs_mkdir() function for the incoming 'lost+found' fsck mechanism Qu Wenruo
2014-12-03  4:18 ` [PATCH v2 6/6] btrfs-progs: Add fixing function for inodes whose nlink dismatch Qu Wenruo
2014-12-03 14:30   ` Ed Tomlinson
2014-12-03  5:03 ` [PATCH 0/6] More generic inode nlink repair function Ed Tomlinson
2014-12-03  7:12   ` Satoru Takeuchi
2014-12-03  7:41     ` Qu Wenruo [this message]
2014-12-04 17:20       ` David Sterba
2014-12-05  1:11         ` Qu Wenruo
2014-12-04 17:27 ` David Sterba

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=547EBE9F.3070805@cn.fujitsu.com \
    --to=quwenruo@cn.fujitsu.com \
    --cc=edt@aei.ca \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=takeuchi_satoru@jp.fujitsu.com \
    /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.