Re: [PATCH 05/13] xfs: sync work is now only periodic log work

Mark Tinguely
2012-09-04T16:13:55Z

On 08/30/12 07:00, Dave Chinner wrote:
> + * Every sync period we need to unpin all items in the AIL and push them to
> + * disk. If there is nothing dirty, then we might need to cover the log to
> + * indicate that the filesystem is idle.
> + */
> +void
> +xfs_log_worker(
> + struct work_struct *work)
> +{
> + struct xlog *log = container_of(to_delayed_work(work),
> + struct xlog, l_work);
> + struct xfs_mount *mp = log->l_mp;
> +
> + /* dgc: errors ignored - not fatal and nowhere to report them */
> + if (xfs_log_need_covered(mp))
> + xfs_fs_log_dummy(mp);
> + else
> + xfs_log_force(mp, 0);
> +
> + /* start pushing all the metadata that is currently dirty */
> + xfs_ail_push_all(mp->m_ail);
> +
> + /* queue us up again */
> + xfs_log_work_queue(mp);
> +}

Having log space for the xfs_fs_log_dummy() is the weak point in the
remaining log hang problems.

I agree with Dave and the above should remain in this series and log
issue handled in another series.

Reviewed-by: Mark Tinguely <tinguely@sgi.com>