[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);