Re: kernel BUG at fs/btrfs/extent_io.c:1890!

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I tried your patch but unfortunately the kernel still gives me the
same error message :(



On Wed, Apr 11, 2012 at 3:01 PM, Josef Bacik <josef@xxxxxxxxxx> wrote:
> On Wed, Apr 11, 2012 at 02:44:26PM +0000, Francesco Cepparo wrote:
>> Hi, I've been using btrfs for a while now, and some months ago one of
>> my filesystems stopped mounting. I tried to fix it by mounting it with
>> the recovery option, by using btrfs-zero-log and by restoring the
>> superblock but it didn't work, so I left the filesystem standing there
>> waiting for the fsck repairing tool to be released (running the
>> version of fsck I had at the time produced the following output:
>> http://dl.dropbox.com/u/2565562/btrfsck-old-output while running the
>> 2012-03-28 version of btrfsck produces the following output:
>> http://dl.dropbox.com/u/2565562/btrfsck-20120328-output.gz ).
>> I'm still waiting for the repairing tool and I haven't tried the
>> dangerous don't ever use branch, but as I have updated the kernel to
>> version 3.4.0-rc2 I tried to mount the filesystem again with the new
>> kernel, and instead of failing with this error message:
>> http://dl.dropbox.com/u/2565562/btrfs-kernel-3.3 as it did with kernel
>> 3.3.1 and the previous kernels, with 3.4.0-rc2 it now hits the
>> following kernel BUG:
>> http://dl.dropbox.com/u/2565562/btrfs-kernel-3.4-bug
>>
>> I hope I can be of any help in improving the already great btrfs.
>> Also, is there any hope for me to recover my old filesystem? :)
>
> Sorry, can you try this patch and see if it stops panicing, thanks,
>
> Josef
>
>
> diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
> index 20196f4..2a3ddd2 100644
> --- a/fs/btrfs/disk-io.c
> +++ b/fs/btrfs/disk-io.c
> @@ -383,17 +383,17 @@ static int btree_read_extent_buffer_pages(struct btrfs_root *root,
>                if (test_bit(EXTENT_BUFFER_CORRUPT, &eb->bflags))
>                        break;
>
> +               num_copies = btrfs_num_copies(&root->fs_info->mapping_tree,
> +                                             eb->start, eb->len);
> +               if (num_copies == 1)
> +                       break;
> +
>                if (!failed_mirror) {
>                        failed = 1;
>                        printk(KERN_ERR "failed mirror was %d\n", eb->failed_mirror);
>                        failed_mirror = eb->failed_mirror;
>                }
>
> -               num_copies = btrfs_num_copies(&root->fs_info->mapping_tree,
> -                                             eb->start, eb->len);
> -               if (num_copies == 1)
> -                       break;
> -
>                mirror_num++;
>                if (mirror_num == failed_mirror)
>                        mirror_num++;
--
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


[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux