Re: Review: Fix dbflush panic in xfs_qm_sync

Lachlan McIlroy
2007-10-16T05:13:19Z

Could mp->m_quotainfo become NULL after this check but before we
lock the list with xfs_qm_mplist_lock()? There doesn't seem to
be any locking to protect changes to this field?

Donald Douwsma wrote:
> The recent behaviour layer removal dropped the check for quotas that
> have been
> requested at mount time but have subsequently been turned off. This results
> in a panic when accessing m_quotainfo which has been freed.
>
> This patch adds the check originally made by xfs_qm_syncall() to
> xfs_qm_sync()
>
>
> Signed-off-by: Donald Douwsma <donaldd@sgi.com>
>
> --- 2.6.x-xfs.orig/fs/xfs/quota/xfs_qm.c
> +++ 2.6.x-xfs/fs/xfs/quota/xfs_qm.c
> @@ -1007,6 +1007,9 @@ xfs_qm_sync(
> boolean_t nowait;
> int error;
>
> + if (! XFS_IS_QUOTA_ON(mp))
> + return 0;
> +
> restarts = 0;
> /*
> * We won't block unless we are asked to.
>
>
>