[PATCH 3/8] xfs: initialise xfssync work before running quotachecks
Ben Myers
bpm at sgi.com
Wed Mar 28 12:38:29 CDT 2012
On Thu, Mar 22, 2012 at 04:15:08PM +1100, Dave Chinner wrote:
> From: Dave Chinner <dchinner at redhat.com>
>
> Because the mount process can run a quotacheck and consume lots of
> inodes, we need to be able to run periodic inode reclaim during the
> mount process. This will prevent running the system out of memory
> during quota checks.
>
> This essentially reverts 2bcf6e97, but that is safe to do now that
> the quota sync code that was causing problems during long quotacheck
> executions is now gone.
>
> Signed-off-by: Dave Chinner <dchinner at redhat.com>
> Reviewed-by: Christoph Hellwig <hch at lst.de>
> ---
> fs/xfs/xfs_super.c | 17 +++++++++--------
> 1 files changed, 9 insertions(+), 8 deletions(-)
>
> diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c
> index 2c3cc2e..a08c56d 100644
> --- a/fs/xfs/xfs_super.c
> +++ b/fs/xfs/xfs_super.c
> @@ -1346,31 +1346,33 @@ xfs_fs_fill_super(
> sb->s_time_gran = 1;
> set_posix_acl_flag(sb);
>
> - error = xfs_mountfs(mp);
> + error = xfs_syncd_init(mp);
> if (error)
> goto out_filestream_unmount;
>
> - error = xfs_syncd_init(mp);
> + error = xfs_mountfs(mp);
> if (error)
> - goto out_unmount;
> + goto out_syncd_stop;
>
> root = igrab(VFS_I(mp->m_rootip));
> if (!root) {
> error = ENOENT;
> - goto out_syncd_stop;
> + goto out_unmount;
> }
> if (is_bad_inode(root)) {
> error = EINVAL;
> - goto out_syncd_stop;
> + goto out_unmount;
> }
> sb->s_root = d_make_root(root);
^^^^
I haven't seen a patch to use d_make_root instead of d_alloc_root, so we'll
take the earlier version of this patch... this one doesn't apply. ;)
-Ben
More information about the xfs
mailing list