merge xfs_mntupdate into xfs_fs_remount
PATCH 1/1 merge xfs_mntupdate into xfs_fs_remount
xfs_mntupdate already is completely Linux specific due to the VFS flags passed in, so it might aswell be merged into xfs_fs_remount.
fs/xfs/linux-2.6/xfs_super.c +21 -2
@@ -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; }
fs/xfs/xfs_vfsops.c +0 -24
@@ -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
fs/xfs/xfs_vfsops.h +0 -2
@@ -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);
Quoted 5 lines · Christoph Hellwig
xfs_mntupdatealready is completely Linux specific due to the VFS flags passed in, so it might aswell be merged intoxfs_fs_remount.Signed-off-by Christoph Hellwig <[email protected]>
Updated version ontop of the kmem_free signature change:
fs/xfs/linux-2.6/xfs_super.c +21 -2
@@ -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; }
fs/xfs/xfs_vfsops.c +0 -24
@@ -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
fs/xfs/xfs_vfsops.h +0 -2
@@ -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);
Quoted 2 lines · Christoph Hellwig
xfs_mntupdatealready is completely Linux specific due to the VFS flags passed in, so it might aswell be merged intoxfs_fs_remount.
ping?
Quoted 85 lines
Signed-off-by Christoph Hellwig <[email protected]>Index:
linux-2.6-xfs/fs/xfs/linux-2.6/xfs_super.c
===================================================================fs/xfs/linux-2.6/xfs_super.c +21
-2@@ -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
===================================================================fs/xfs/xfs_vfsops.c +0
-24@@ -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
===================================================================
fs/xfs/xfs_vfsops.h struct xfs_mount_args; · line 16
Quoted 8 lines
fs/xfs/xfs_vfsops.h +0
-2@@ -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---