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

Re: 2.4.18-rc4-aa1 XFS oopses caused by cpio



Stephen Lord wrote:

>>
> Ah, so you ran growfs on the filesystem, thats the key here. It looks 
> like the new code
> does not handle growfs correctly, the structure which is null is not 
> allocated in the
> expansion case. I should have a fix shortly.
>
> Steve

Hi,

Can you try and repeat with this patch, it should apply reasonably 
cleanly to the aa tree.

Steve



===========================================================================
Index: linux/fs/xfs/xfs_alloc.c
===========================================================================

2234a2235,2236
> 		pag->pagb_list = kmem_zalloc(XFS_PAGB_NUM_SLOTS *
> 					sizeof(xfs_perag_busy_t), KM_SLEEP);

===========================================================================
Index: linux/fs/xfs/xfs_mount.c
===========================================================================

151,152c151,153
< 			kmem_free(mp->m_perag[agno].pagb_list,
< 			  sizeof(xfs_perag_busy_t) * XFS_PAGB_NUM_SLOTS);
---
> 			if (mp->m_perag[agno].pagb_list)
> 				kmem_free(mp->m_perag[agno].pagb_list,
> 				  sizeof(xfs_perag_busy_t) * XFS_PAGB_NUM_SLOTS);
877,881d877
< 	for (agno = 0; agno < sbp->sb_agcount; agno++) {
< 		mp->m_perag[agno].pagb_count = 0;
< 		mp->m_perag[agno].pagb_list = kmem_zalloc(XFS_PAGB_NUM_SLOTS *
< 					sizeof(xfs_perag_busy_t), KM_SLEEP);
< 	}
1066,1067c1062,1064
< 		kmem_free(mp->m_perag[agno].pagb_list,
< 		  sizeof(xfs_perag_busy_t) * XFS_PAGB_NUM_SLOTS);
---
> 		if (mp->m_perag[agno].pagb_list)
> 			kmem_free(mp->m_perag[agno].pagb_list,
> 			  sizeof(xfs_perag_busy_t) * XFS_PAGB_NUM_SLOTS);