From: Miao Xie <miaox@cn.fujitsu.com>
To: Tsutomu Itoh <t-itoh@jp.fujitsu.com>
Cc: Eric Sandeen <sandeen@redhat.com>,
Linux Btrfs <linux-btrfs@vger.kernel.org>
Subject: Re: [BUG] kernel BUG at fs/btrfs/async-thread.c:605!
Date: Fri, 01 Feb 2013 11:49:31 +0800 [thread overview]
Message-ID: <510B3B4B.6070607@cn.fujitsu.com> (raw)
In-Reply-To: <510B0CE5.9090601@jp.fujitsu.com>
On Fri, 01 Feb 2013 09:31:33 +0900, Tsutomu Itoh wrote:
> Hi,
>
> On 2013/01/31 16:58, Miao Xie wrote:
>> On wed, 30 Jan 2013 23:55:34 -0600, Eric Sandeen wrote:
>>> if you move the fail_block_groups: target above the comment, does that fix it?
>>> (although I don't know yet what started IO . . . )
>>>
>>> like this:
>>>
>>> From: Eric Sandeen <sandeen@redhat.com>
>>>
>>> Make sure that we are always done with the btree_inode's mapping
>>> before we shut down the worker threads in open_ctree() error
>>> cases.
>>
>>
>> I reviewed your patch again, and found it just fix the above problem, it still
>> have similar problems which are not fixed.
>>
>> How about this one?
>
> Thanks Eric and Miao.
> But I can not reproduce this problem, yet.
> ('Btrfs: too many missing devices, writeable mount is not allowed' messages was
> displayed, but not panic)
> So, I can not test your patch, sorry.
>
> Can you please explain similar problems, Miao?
Before missing device check, there are several places where we read the metadata,
such as reading chunk tree root, btrfs_read_chunk_tree, those functions may fail
after submit a bio. If we don't wait until the bio end, and just stop the workers,
the same problem will happen.
(invalidate_inode_pages2() will wait until the bio end, because it need lock the pages
which are going to be invalidated, and the page is locked if it is under disk read IO)
Thanks
Miao
>
> Thanks,
> Tsutomu
>
>>
>> diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
>> index 0c31d07..d8fd711 100644
>> --- a/fs/btrfs/disk-io.c
>> +++ b/fs/btrfs/disk-io.c
>> @@ -2728,13 +2728,13 @@ fail_cleaner:
>> * kthreads
>> */
>> filemap_write_and_wait(fs_info->btree_inode->i_mapping);
>> - invalidate_inode_pages2(fs_info->btree_inode->i_mapping);
>>
>> fail_block_groups:
>> btrfs_free_block_groups(fs_info);
>>
>> fail_tree_roots:
>> free_root_pointers(fs_info, 1);
>> + invalidate_inode_pages2(fs_info->btree_inode->i_mapping);
>>
>> fail_sb_buffer:
>> btrfs_stop_workers(&fs_info->generic_worker);
>> @@ -2755,7 +2755,6 @@ fail_alloc:
>> fail_iput:
>> btrfs_mapping_tree_free(&fs_info->mapping_tree);
>>
>> - invalidate_inode_pages2(fs_info->btree_inode->i_mapping);
>> iput(fs_info->btree_inode);
>> fail_bdi:
>> bdi_destroy(&fs_info->bdi);
>>
>> --
>> 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
>>
>>
>
>
>
next prev parent reply other threads:[~2013-02-01 3:48 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-31 3:37 [BUG] kernel BUG at fs/btrfs/async-thread.c:605! Tsutomu Itoh
2013-01-31 5:55 ` Eric Sandeen
2013-01-31 7:44 ` Miao Xie
2013-01-31 7:58 ` Miao Xie
2013-01-31 15:37 ` Eric Sandeen
2013-02-01 0:31 ` Tsutomu Itoh
2013-02-01 3:49 ` Miao Xie [this message]
2013-02-01 5:53 ` Tsutomu Itoh
2013-02-04 2:39 ` Miao Xie
2013-02-04 16:05 ` Eric Sandeen
2013-01-31 6:14 ` Miao Xie
2013-01-31 6:19 ` Eric Sandeen
2013-01-31 6:35 ` Miao Xie
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=510B3B4B.6070607@cn.fujitsu.com \
--to=miaox@cn.fujitsu.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=sandeen@redhat.com \
--cc=t-itoh@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.