On 1/31/13 1:58 AM, 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@xxxxxxxxxx> >> >> 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. Can you explain the similar problems you found? (Also, the reason I thought a write had been started was because the original panic was in comm: btrfs-endio-wr[iter]) Thanks, -Eric > How about this one? > > 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@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
