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