From: Qu Wenruo <quwenruo@cn.fujitsu.com>
To: <dsterba@suse.cz>, <linux-btrfs@vger.kernel.org>,
Lu Fengqi <lufq.fnst@cn.fujitsu.com>
Subject: Re: [PATCH v2 02/14] btrfs-progs: check: introduce function to find dir_item
Date: Thu, 3 Nov 2016 09:58:21 +0800 [thread overview]
Message-ID: <cedc76f5-fadc-c6d0-b491-eb16ccc3e15a@cn.fujitsu.com> (raw)
In-Reply-To: <20161102152151.GH12522@twin.jikos.cz>
At 11/02/2016 11:21 PM, David Sterba wrote:
> On Wed, Sep 21, 2016 at 11:15:52AM +0800, Qu Wenruo wrote:
>> From: Lu Fengqi <lufq.fnst@cn.fujitsu.com>
>>
>> Introduce a new function find_dir_item() to find DIR_ITEM for the given
>> key, and check it with the specified INODE_REF/INODE_EXTREF match.
>>
>> Signed-off-by: Lu Fengqi <lufq.fnst@cn.fujitsu.com>
>> Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
>> ---
>> cmds-check.c | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 140 insertions(+)
>>
>> diff --git a/cmds-check.c b/cmds-check.c
>> index 998ba63..4e25804 100644
>> --- a/cmds-check.c
>> +++ b/cmds-check.c
>> @@ -3848,6 +3848,146 @@ out:
>> return err;
>> }
>>
>> +#define ROOT_DIR_ERROR (1<<1) /* bad root_dir */
>> +#define DIR_ITEM_MISSING (1<<2) /* DIR_ITEM not found */
>> +#define DIR_ITEM_MISMATCH (1<<3) /* DIR_ITEM found but not match */
>
> What's the reason for another definition of the error codes? They're
> mostly copied from te I_ERR_* counterparts. I'd rather have one set of
> error codes.
The main reason is, in lowmem fsck mode, we are not checking inodes or
ref/backref in batch.
If using I_ERR and REF_ERR, we can mixing them up as they share the same
bits.
So we introduced the new error bitmap, to make sure all error bits won't
cover each other.
It may be better if we rearrange I_ERR/REF_ERR to avoid conflicts.
E.g, let REF_ERR_ starts from lowest bit and let I_ERR_ starts from high
bits.
Thanks,
Qu
next prev parent reply other threads:[~2016-11-03 1:58 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-21 3:15 [PATCH v2 00/14] Btrfsck low memory mode with fs/subvol tree check Qu Wenruo
2016-09-21 3:15 ` [PATCH v2 01/14] btrfs-progs: move btrfs_extref_hash() to hash.h Qu Wenruo
2016-09-21 3:15 ` [PATCH v2 02/14] btrfs-progs: check: introduce function to find dir_item Qu Wenruo
2016-11-02 15:21 ` David Sterba
2016-11-03 1:58 ` Qu Wenruo [this message]
2016-11-07 17:05 ` David Sterba
2016-11-08 1:45 ` Qu Wenruo
2016-11-30 16:20 ` David Sterba
2016-11-16 2:27 ` Qu Wenruo
2016-11-30 16:34 ` David Sterba
2016-12-01 1:09 ` Qu Wenruo
2016-12-06 3:04 ` Qu Wenruo
2016-09-21 3:15 ` [PATCH v2 03/14] btrfs-progs: check: introduce function to check inode_ref Qu Wenruo
2016-09-21 3:15 ` [PATCH v2 04/14] btrfs-progs: check: introduce function to check inode_extref Qu Wenruo
2016-09-21 3:15 ` [PATCH v2 05/14] btrfs-progs: check: introduce function to find inode_ref Qu Wenruo
2016-09-21 3:15 ` [PATCH v2 06/14] btrfs-progs: check: introduce a function to check dir_item Qu Wenruo
2016-09-21 3:15 ` [PATCH v2 07/14] btrfs-progs: check: introduce function to check file extent Qu Wenruo
2016-09-21 3:15 ` [PATCH v2 08/14] btrfs-progs: check: introduce function to check inode item Qu Wenruo
2016-09-21 3:15 ` [PATCH v2 09/14] btrfs-progs: check: introduce function to check fs root Qu Wenruo
2016-09-21 3:16 ` [PATCH v2 10/14] btrfs-progs: check: introduce function to check root ref Qu Wenruo
2016-09-21 3:16 ` [PATCH v2 11/14] btrfs-progs: check: introduce low_memory mode fs_tree check Qu Wenruo
2016-09-21 3:16 ` [PATCH v2 12/14] btrfs-progs: check: fix the return value bug of cmd_check() Qu Wenruo
2016-09-21 3:16 ` [PATCH v2 13/14] btrfs-progs: check: skip shared node or leaf check for low_memory mode Qu Wenruo
2016-09-21 3:16 ` [PATCH v2 14/14] btrfs-progs: check: Enhance leaf traversal function to handle missing inode item Qu Wenruo
2016-09-22 16:03 ` [PATCH v2 00/14] Btrfsck low memory mode with fs/subvol tree check David Sterba
2016-10-21 7:56 ` 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=cedc76f5-fadc-c6d0-b491-eb16ccc3e15a@cn.fujitsu.com \
--to=quwenruo@cn.fujitsu.com \
--cc=dsterba@suse.cz \
--cc=linux-btrfs@vger.kernel.org \
--cc=lufq.fnst@cn.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).