xfs
[Top] [All Lists]

Re: [PATCH] merge xfs_mntupdate into xfs_fs_remount

To: xfs@xxxxxxxxxxx
Subject: Re: [PATCH] merge xfs_mntupdate into xfs_fs_remount
From: Christoph Hellwig <hch@xxxxxx>
Date: Fri, 16 May 2008 09:22:59 +0200
In-reply-to: <20080426201029.GB14172@lst.de>
References: <20080426201029.GB14172@lst.de>
Sender: xfs-bounce@xxxxxxxxxxx
User-agent: Mutt/1.3.28i
On Sat, Apr 26, 2008 at 10:10:29PM +0200, Christoph Hellwig wrote:
> xfs_mntupdate already is completely Linux specific due to the VFS flags
> passed in, so it might aswell be merged into xfs_fs_remount.

ping?

> 
> 
> Signed-off-by: Christoph Hellwig <hch@xxxxxx>
> 
> Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_super.c
> ===================================================================
> --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_super.c   2008-04-25 
> 20:42:43.000000000 +0200
> +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_super.c        2008-04-25 
> 20:44:55.000000000 +0200
> @@ -52,6 +52,7 @@
>  #include "xfs_version.h"
>  #include "xfs_log_priv.h"
>  #include "xfs_trans_priv.h"
> +#include "xfs_filestream.h"
>  
>  #include <linux/namei.h>
>  #include <linux/init.h>
> @@ -1220,8 +1221,26 @@ xfs_fs_remount(
>       int                     error;
>  
>       error = xfs_parseargs(mp, options, args, 1);
> -     if (!error)
> -             error = xfs_mntupdate(mp, flags, args);
> +     if (error)
> +             goto out_free_args;
> +
> +     if (!(*flags & MS_RDONLY)) {                    /* rw/ro -> rw */
> +             if (mp->m_flags & XFS_MOUNT_RDONLY)
> +                     mp->m_flags &= ~XFS_MOUNT_RDONLY;
> +             if (args->flags & XFSMNT_BARRIER) {
> +                     mp->m_flags |= XFS_MOUNT_BARRIER;
> +                     xfs_mountfs_check_barriers(mp);
> +             } else {
> +                     mp->m_flags &= ~XFS_MOUNT_BARRIER;
> +             }
> +     } else if (!(mp->m_flags & XFS_MOUNT_RDONLY)) { /* rw -> ro */
> +             xfs_filestream_flush(mp);
> +             xfs_sync(mp, SYNC_DATA_QUIESCE);
> +             xfs_attr_quiesce(mp);
> +             mp->m_flags |= XFS_MOUNT_RDONLY;
> +     }
> +
> + out_free_args:
>       kmem_free(args, sizeof(*args));
>       return -error;
>  }
> Index: linux-2.6-xfs/fs/xfs/xfs_vfsops.c
> ===================================================================
> --- linux-2.6-xfs.orig/fs/xfs/xfs_vfsops.c    2008-04-25 20:42:43.000000000 
> +0200
> +++ linux-2.6-xfs/fs/xfs/xfs_vfsops.c 2008-04-25 20:43:36.000000000 +0200
> @@ -693,30 +693,6 @@ xfs_attr_quiesce(
>       xfs_unmountfs_writesb(mp);
>  }
>  
> -int
> -xfs_mntupdate(
> -     struct xfs_mount                *mp,
> -     int                             *flags,
> -     struct xfs_mount_args           *args)
> -{
> -     if (!(*flags & MS_RDONLY)) {                    /* rw/ro -> rw */
> -             if (mp->m_flags & XFS_MOUNT_RDONLY)
> -                     mp->m_flags &= ~XFS_MOUNT_RDONLY;
> -             if (args->flags & XFSMNT_BARRIER) {
> -                     mp->m_flags |= XFS_MOUNT_BARRIER;
> -                     xfs_mountfs_check_barriers(mp);
> -             } else {
> -                     mp->m_flags &= ~XFS_MOUNT_BARRIER;
> -             }
> -     } else if (!(mp->m_flags & XFS_MOUNT_RDONLY)) { /* rw -> ro */
> -             xfs_filestream_flush(mp);
> -             xfs_sync(mp, SYNC_DATA_QUIESCE);
> -             xfs_attr_quiesce(mp);
> -             mp->m_flags |= XFS_MOUNT_RDONLY;
> -     }
> -     return 0;
> -}
> -
>  /*
>   * xfs_unmount_flush implements a set of flush operation on special
>   * inodes, which are needed as a separate set of operations so that
> Index: linux-2.6-xfs/fs/xfs/xfs_vfsops.h
> ===================================================================
> --- linux-2.6-xfs.orig/fs/xfs/xfs_vfsops.h    2008-04-25 20:42:43.000000000 
> +0200
> +++ linux-2.6-xfs/fs/xfs/xfs_vfsops.h 2008-04-25 20:42:48.000000000 +0200
> @@ -11,8 +11,6 @@ struct xfs_mount_args;
>  int xfs_mount(struct xfs_mount *mp, struct xfs_mount_args *args,
>               struct cred *credp);
>  int xfs_unmount(struct xfs_mount *mp, int flags, struct cred *credp);
> -int xfs_mntupdate(struct xfs_mount *mp, int *flags,
> -             struct xfs_mount_args *args);
>  int xfs_sync(struct xfs_mount *mp, int flags);
>  void xfs_do_force_shutdown(struct xfs_mount *mp, int flags, char *fname,
>               int lnnum);
---end quoted text---


<Prev in Thread] Current Thread [Next in Thread>