-------- Original Message --------
Subject: Re: [PATCH 0/6] More generic inode nlink repair function
From: Satoru Takeuchi <takeuchi_sat...@jp.fujitsu.com>
To: Ed Tomlinson <e...@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 majord...@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 majord...@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 majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html