From: Qu Wenruo <wqu@suse.de>
To: dsterba@suse.cz, Qu Wenruo <wqu@suse.com>,
linux-btrfs@vger.kernel.org, Nikolay Borisov <nborisov@suse.com>
Subject: Re: [PATCh v2 8/9] btrfs: tree-checker: Verify inode item
Date: Thu, 28 Mar 2019 22:00:22 +0800 [thread overview]
Message-ID: <70209af7-5948-4bfc-a3a0-06a258ad8ed9@suse.de> (raw)
In-Reply-To: <20190328135714.GF29086@twin.jikos.cz>
On 2019/3/28 下午9:57, David Sterba wrote:
> On Thu, Mar 28, 2019 at 09:42:59PM +0800, Qu Wenruo wrote:
>>
>>
>> On 2019/3/28 下午9:38, David Sterba wrote:
>>> On Wed, Mar 20, 2019 at 02:37:16PM +0800, Qu Wenruo wrote:
>>>> + if (S_ISDIR(mode) && btrfs_inode_nlink(leaf, iitem) > 1) {
>>>> + inode_item_err(fs_info, leaf, slot,
>>>> + "invalid nlink: has %u expect no more than 1 for dir",
>>>> + btrfs_inode_nlink(leaf, iitem));
>>>> + goto error;
>>>> + }
>>>
>>> I'm not sure about this check, the number of links for a directory is 1,
>>> but the exact count could be implemented (there's a project idea for
>>> that). I don't know if this will require an incompat bit or not.
>>
>> That means we have hard link for directories.
>
> Yes, hard links of directories are forbidden by VFS but that's not the
> point here:
>
> https://btrfs.wiki.kernel.org/index.php/Project_ideas#Track_link_count_for_directories
>
> "The link count for directories is traditionally used to count the number
> of subdirectores iff the link count is >= 2."
Oh, got it.
But for that case, it would be much better to go for things like nbytes
or size, as by all means, those two members are less meaningful than
nlinks for directory.
Thanks,
Qu
>
next prev parent reply other threads:[~2019-03-28 14:00 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-20 6:37 [PATCh v2 0/9] btrfs: tree-checker: More enhancement for fuzzed Qu Wenruo
2019-03-20 6:37 ` [PATCh v2 1/9] btrfs: Move btrfs_check_chunk_valid() to tree-check.[ch] and export it Qu Wenruo
2019-03-20 10:34 ` Johannes Thumshirn
2019-03-25 17:06 ` David Sterba
2019-03-25 23:02 ` Qu Wenruo
2019-03-26 14:34 ` David Sterba
2019-03-20 6:37 ` [PATCh v2 2/9] btrfs: tree-checker: Make chunk item checker more readable Qu Wenruo
2019-03-20 10:41 ` Johannes Thumshirn
2019-03-26 15:08 ` David Sterba
2019-03-20 6:37 ` [PATCh v2 3/9] btrfs: tree-checker: Make btrfs_check_chunk_valid() return EUCLEAN instead of EIO Qu Wenruo
2019-03-20 10:44 ` Johannes Thumshirn
2019-03-20 6:37 ` [PATCh v2 4/9] btrfs: tree-checker: Check chunk item at tree block read time Qu Wenruo
2019-03-20 10:56 ` Johannes Thumshirn
2019-03-20 6:37 ` [PATCh v2 5/9] btrfs: tree-checker: Verify dev item Qu Wenruo
2019-03-20 11:51 ` Johannes Thumshirn
2019-03-20 11:53 ` Qu Wenruo
2019-03-25 17:04 ` David Sterba
2019-04-06 1:07 ` Qu Wenruo
2019-03-20 6:37 ` [PATCh v2 6/9] btrfs: Check the first key and level for cached extent buffer Qu Wenruo
2019-03-20 12:02 ` Johannes Thumshirn
2019-03-20 6:37 ` [PATCh v2 7/9] btrfs: tree-checker: Enhance chunk checker to validate chunk profiler Qu Wenruo
2019-03-20 12:38 ` Johannes Thumshirn
2019-03-20 6:37 ` [PATCh v2 8/9] btrfs: tree-checker: Verify inode item Qu Wenruo
2019-03-20 13:27 ` Johannes Thumshirn
2019-03-25 4:27 ` Qu Wenruo
2019-03-26 16:02 ` David Sterba
2019-03-27 0:13 ` Qu Wenruo
2019-03-26 15:27 ` David Sterba
2019-03-28 13:38 ` David Sterba
2019-03-28 13:42 ` Qu Wenruo
2019-03-28 13:57 ` David Sterba
2019-03-28 14:00 ` Qu Wenruo [this message]
2019-03-28 14:07 ` David Sterba
2019-03-28 14:13 ` Qu Wenruo
2019-03-28 14:25 ` David Sterba
2019-03-28 23:49 ` Qu Wenruo
2019-03-20 6:37 ` [PATCh v2 9/9] btrfs: inode: Verify inode mode to avoid NULL pointer dereference Qu Wenruo
2019-03-20 13:33 ` Johannes Thumshirn
2019-03-28 13:53 ` David Sterba
2019-03-28 13:58 ` Qu Wenruo
2019-03-28 14:02 ` David Sterba
2019-03-28 15:48 ` [PATCh v2 0/9] btrfs: tree-checker: More enhancement for fuzzed 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=70209af7-5948-4bfc-a3a0-06a258ad8ed9@suse.de \
--to=wqu@suse.de \
--cc=dsterba@suse.cz \
--cc=linux-btrfs@vger.kernel.org \
--cc=nborisov@suse.com \
--cc=wqu@suse.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).