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