* [PATCH] btrfs-progs: lowmem-check: Fix false alert on dropped leaf
@ 2017-01-18 5:21 Qu Wenruo
2017-01-20 18:21 ` David Sterba
0 siblings, 1 reply; 2+ messages in thread
From: Qu Wenruo @ 2017-01-18 5:21 UTC (permalink / raw)
To: linux-btrfs
For btrfs-progs test case 021-partially-dropped-snapshot-case, if the
first leaf is already dropped, btrfs check low-memory mode will report
false alert:
checking fs roots
checksum verify failed on 29917184 found E4E3BDB6 wanted 00000000
checksum verify failed on 29917184 found E4E3BDB6 wanted 00000000
checksum verify failed on 29917184 found E4E3BDB6 wanted 00000000
checksum verify failed on 29917184 found E4E3BDB6 wanted 00000000
This is caused by we are calling check_fs_first_inode() function,
unlike the rest part of check_fs_root_v2(), it doesn't have enough check
on dropping progress, and caused the false alert.
Fix it by checking dropping progress before searching slot.
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
---
cmds-check.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/cmds-check.c b/cmds-check.c
index 1dba2985..25247fd9 100644
--- a/cmds-check.c
+++ b/cmds-check.c
@@ -4939,11 +4939,18 @@ static int check_fs_first_inode(struct btrfs_root *root, unsigned int ext_ref)
int err = 0;
int ret;
- btrfs_init_path(&path);
key.objectid = BTRFS_FIRST_FREE_OBJECTID;
key.type = BTRFS_INODE_ITEM_KEY;
key.offset = 0;
+ /* For root being dropped, we don't need to check first inode */
+ if (btrfs_root_refs(&root->root_item) == 0 &&
+ btrfs_disk_key_objectid(&root->root_item.drop_progress) >=
+ key.objectid)
+ return 0;
+
+ btrfs_init_path(&path);
+
ret = btrfs_search_slot(NULL, root, &key, &path, 0, 0);
if (ret < 0)
goto out;
--
2.11.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] btrfs-progs: lowmem-check: Fix false alert on dropped leaf
2017-01-18 5:21 [PATCH] btrfs-progs: lowmem-check: Fix false alert on dropped leaf Qu Wenruo
@ 2017-01-20 18:21 ` David Sterba
0 siblings, 0 replies; 2+ messages in thread
From: David Sterba @ 2017-01-20 18:21 UTC (permalink / raw)
To: Qu Wenruo; +Cc: linux-btrfs
On Wed, Jan 18, 2017 at 01:21:07PM +0800, Qu Wenruo wrote:
> For btrfs-progs test case 021-partially-dropped-snapshot-case, if the
> first leaf is already dropped, btrfs check low-memory mode will report
> false alert:
>
> checking fs roots
> checksum verify failed on 29917184 found E4E3BDB6 wanted 00000000
> checksum verify failed on 29917184 found E4E3BDB6 wanted 00000000
> checksum verify failed on 29917184 found E4E3BDB6 wanted 00000000
> checksum verify failed on 29917184 found E4E3BDB6 wanted 00000000
>
> This is caused by we are calling check_fs_first_inode() function,
> unlike the rest part of check_fs_root_v2(), it doesn't have enough check
> on dropping progress, and caused the false alert.
>
> Fix it by checking dropping progress before searching slot.
>
> Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Applied, thanks.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-01-20 18:21 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-01-18 5:21 [PATCH] btrfs-progs: lowmem-check: Fix false alert on dropped leaf Qu Wenruo
2017-01-20 18:21 ` David Sterba
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).