* [PATCH] merge xfs_mntupdate into xfs_fs_remount
@ 2008-04-26 20:10 Christoph Hellwig
2008-05-09 6:25 ` Christoph Hellwig
2008-05-16 7:22 ` Christoph Hellwig
0 siblings, 2 replies; 3+ messages in thread
From: Christoph Hellwig @ 2008-04-26 20:10 UTC (permalink / raw)
To: xfs
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@lst.de>
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);
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] merge xfs_mntupdate into xfs_fs_remount
2008-04-26 20:10 [PATCH] merge xfs_mntupdate into xfs_fs_remount Christoph Hellwig
@ 2008-05-09 6:25 ` Christoph Hellwig
2008-05-16 7:22 ` Christoph Hellwig
1 sibling, 0 replies; 3+ messages in thread
From: Christoph Hellwig @ 2008-05-09 6:25 UTC (permalink / raw)
To: xfs
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@lst.de>
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);
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] merge xfs_mntupdate into xfs_fs_remount
2008-04-26 20:10 [PATCH] merge xfs_mntupdate into xfs_fs_remount Christoph Hellwig
2008-05-09 6:25 ` Christoph Hellwig
@ 2008-05-16 7:22 ` Christoph Hellwig
1 sibling, 0 replies; 3+ messages in thread
From: Christoph Hellwig @ 2008-05-16 7:22 UTC (permalink / raw)
To: xfs
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@lst.de>
>
> 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---
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2008-05-16 7:22 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-26 20:10 [PATCH] merge xfs_mntupdate into xfs_fs_remount Christoph Hellwig
2008-05-09 6:25 ` Christoph Hellwig
2008-05-16 7:22 ` Christoph Hellwig
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox