Re: btrfs crash - Null dereference - 3.7.0-rc5-00068-gc5e35d6

2012-11-19 Thread Gustavo Padovan
Hi Liu,

* Liu Bo bo.li@oracle.com [2012-11-19 18:32:23 +0800]:

 On Mon, Nov 19, 2012 at 12:55:40AM -0200, Gustavo Padovan wrote:
  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
0x811a83c1 is in block_rsv_release_bytes
(fs/btrfs/extent-tree.c:4065).
4060
4061static void block_rsv_release_bytes(struct btrfs_fs_info *fs_info,
4062struct btrfs_block_rsv *block_rsv,
4063struct btrfs_block_rsv *dest, u64
num_bytes)
4064{
4065struct btrfs_space_info *space_info = block_rsv-space_info;
4066
4067spin_lock(block_rsv-lock);
4068if (num_bytes == (u64)-1)
4069num_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
--
To unsubscribe from this list: send the line unsubscribe linux-btrfs in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: btrfs crash - Null dereference - 3.7.0-rc5-00068-gc5e35d6

2012-11-19 Thread Gustavo Padovan
* Liu Bo bo.li@oracle.com [2012-11-19 23:27:53 +0800]:

 On Mon, Nov 19, 2012 at 11:07:52AM -0200, Gustavo Padovan wrote:
   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
  0x811a83c1 is in block_rsv_release_bytes
  (fs/btrfs/extent-tree.c:4065).
  4060
  4061static void block_rsv_release_bytes(struct btrfs_fs_info 
  *fs_info,
  4062struct btrfs_block_rsv 
  *block_rsv,
  4063struct btrfs_block_rsv 
  *dest, u64
  num_bytes)
  4064{
  4065struct btrfs_space_info *space_info = 
  block_rsv-space_info;
  4066
  4067spin_lock(block_rsv-lock);
  4068if (num_bytes == (u64)-1)
  4069num_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
 
 Can you check if the following commit is in your tree?
 
 commit 321f0e70225abc792d74902a2bc4a60164265fd4
 Author: Miao Xie mi...@cn.fujitsu.com
 
 Btrfs: fix wrong orphan count of the fs/file tree
 
 diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
 index 878116d..a6824bd 100644
 --- a/fs/btrfs/inode.c
 +++ b/fs/btrfs/inode.c
 @@ -2228,7 +2228,7 @@ int btrfs_orphan_add(struct btrfs_trans_handle *trans, 
 struct inode *inode)
 insert = 1;
  #endif
 insert = 1;
 -   atomic_dec(root-orphan_inodes);
 +   atomic_inc(root-orphan_inodes);
 }
  
 if (!test_and_set_bit(BTRFS_INODE_ORPHAN_META_RESERVED,

Yes, it is. I'm using linus tree from last week, head at c5e35d6.

Gustavo
--
To unsubscribe from this list: send the line unsubscribe linux-btrfs in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


btrfs crash - Null dereference - 3.7.0-rc5-00068-gc5e35d6

2012-11-18 Thread Gustavo Padovan
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.

Gustavo
--
To unsubscribe from this list: send the line unsubscribe linux-btrfs in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html