Re: [PATCH 03/13] xfs: rationalise xfs_mount_wq users

Mark Tinguely
2012-09-04T15:47:24Z

On 08/30/12 07:00, Dave Chinner wrote:
> - /*
> - * We shouldn't write/force the log if we are in the mount/unmount
> - * process or on a read only filesystem. The workqueue still needs to be
> - * active in both cases, however, because it is used for inode reclaim
> - * during these times. Use the MS_ACTIVE flag to avoid doing anything
> - * during mount. Doing work during unmount is avoided by calling
> - * cancel_delayed_work_sync on this work queue before tearing down
> - * the ail and the log in xfs_log_unmount.
> - */
> - if (!(mp->m_super->s_flags& MS_ACTIVE)&&
> - !(mp->m_flags& XFS_MOUNT_RDONLY)) {
> + if (!(mp->m_flags& XFS_MOUNT_RDONLY)) {
> /* dgc: errors ignored here */
> if (mp->m_super->s_writers.frozen == SB_UNFROZEN&&
> xfs_log_need_covered(mp))
> @@ -408,8 +398,7 @@ xfs_sync_worker(
> else
> xfs_log_force(mp, 0);
>
> - /* start pushing all the metadata that is currently
> - * dirty */
> + /* start pushing all the metadata that is currently dirty */
> xfs_ail_push_all(mp->m_ail);
> }
>

It appears that the removal of the MS_ACTIVE flag is causing the
"atomic_read(&bp->b_hold)> 0," ASSERT.

--Mark.