Am Montag, 6. Februar 2017, 12:48:42 BRST schrieb Thiago Jung Bauermann:
> 216 static inline void wb_get(struct bdi_writeback *wb)
> 217 {
> 218         if (wb != &wb->bdi->wb)
> 219                 percpu_ref_get(&wb->refcnt);
> 220 }
> 
> So it looks like wb->bdi is NULL.

Sorry, looking a little deeper, it's actually wb which is NULL:

./include/linux/backing-dev.h:
371             return inode->i_wb;
   0xc00000000037999c <+76>:    ld      r31,256(r29)

./include/linux/backing-dev-defs.h:
218             if (wb != &wb->bdi->wb)
   0xc0000000003799a0 <+80>:    ld      r9,0(r31)
   0xc0000000003799a4 <+84>:    addi    r9,r9,88
   0xc0000000003799a8 <+88>:    cmpld   cr7,r31,r9
   0xc0000000003799ac <+92>:    beq     cr7,0xc0000000003799e0 
<locked_inode_to_wb_and_lock_list+144>

We can see above that inode->i_wb is in r31, and the machine crashed at 
0xc0000000003799a0 so it was trying to dereference wb and crashed.
r31 is NULL in the crash information.

-- 
Thiago Jung Bauermann
IBM Linux Technology Center

Reply via email to