[PATCH 1/6] xfs: Fix m_agirotor reset during AG selection
Mark Tinguely
tinguely at sgi.com
Wed Sep 26 15:19:53 CDT 2012
On 09/20/12 08:32, Carlos Maiolino wrote:
> xfs_ialloc_next_ag() currently resets m_agirotor when it is equal to m_maxagi:
>
> if (++mp->m_agirotor == mp->m_maxagi)
> mp->m_agirotor = 0;
>
> But, if for some reason mp->m_maxagi changes to a lower value than current
> m_agirotor, this condition will never be true, causing m_agirotor to exceed the
> maximum allowed value (m_maxagi).
>
> This implies mainly during lookups for xfs_perag structs in its radix tree,
> since the agno value used for the lookup is based on m_agirotor. An out-of-range
> m_agirotor may cause a lookup failure which in case will return NULL.
>
> As an example, the value of m_maxagi is decreased during inode64->inode32
> remount process, case where I've found this problem.
>
> Signed-off-by: Carlos Maiolino<cmaiolino at redhat.com>
> ---
Looks good.
Reviewed-by: Mark Tinguely <tinguely at sgi.com>
More information about the xfs
mailing list