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, 9 May 2008 08:25:45 +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.
> 
> 
> Signed-off-by: Christoph Hellwig <hch@xxxxxx>

Updated version ontop of the kmem_free signature change:


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-05-09 
08:16:46.000000000 +0200
+++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_super.c  2008-05-09 08:17:30.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>
@@ -1221,8 +1222,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);
        return -error;
 }
Index: linux-2.6-xfs/fs/xfs/xfs_vfsops.c
===================================================================
--- linux-2.6-xfs.orig/fs/xfs/xfs_vfsops.c      2008-05-09 08:16:46.000000000 
+0200
+++ linux-2.6-xfs/fs/xfs/xfs_vfsops.c   2008-05-09 08:16:55.000000000 +0200
@@ -701,30 +701,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-05-09 08:16:46.000000000 
+0200
+++ linux-2.6-xfs/fs/xfs/xfs_vfsops.h   2008-05-09 08:16:55.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);


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