Re: btrfs crash - Null dereference - 3.7.0-rc5-00068-gc5e35d6
From: Gustavo Padovan <hidden>
Date: 2012-11-19 13:07:59
Hi Liu, * Liu Bo [off-list ref] [2012-11-19 18:32:23 +0800]:
On Mon, Nov 19, 2012 at 12:55:40AM -0200, Gustavo Padovan wrote:quoted
Hi, my system suddenly crashed and gave me this dump: http://imgur.com/oO6S0 I checked and there is not btrfs commit in linus' tree since I compiled this kernel.Hi Gustavo, It's weird that NULL pointer oops happens here. Since you own the kernel, you may also have debuginfo left, can you please run 'gdb fs/btrfs/btrfs.ko' and 'list *block_rsv_release_bytes+0x21' to check which one is NULL pointer?
(gdb) list *block_rsv_release_bytes+0x21
0xffffffff811a83c1 is in block_rsv_release_bytes
(fs/btrfs/extent-tree.c:4065).
4060
4061 static void block_rsv_release_bytes(struct btrfs_fs_info *fs_info,
4062 struct btrfs_block_rsv *block_rsv,
4063 struct btrfs_block_rsv *dest, u64
num_bytes)
4064 {
4065 struct btrfs_space_info *space_info = block_rsv->space_info;
4066
4067 spin_lock(&block_rsv->lock);
4068 if (num_bytes == (u64)-1)
4069 num_bytes = block_rsv->size;
(gdb)
Seems block_rsv is NULL here and looking to btrfs_block_rsv_release() it can
only be NULL at this point if global_rsv->full is true otherwise the crash
would happen there. I didn't go any further than this.
Gustavo