aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/xfs/linux-2.6/xfs_super.c11
-rw-r--r--fs/xfs/xfs_vfsops.c15
-rw-r--r--fs/xfs/xfs_vfsops.h2
3 files changed, 12 insertions, 16 deletions
diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c
index c0549737f7ea..c430b44dde4b 100644
--- a/fs/xfs/linux-2.6/xfs_super.c
+++ b/fs/xfs/linux-2.6/xfs_super.c
@@ -41,6 +41,7 @@
41#include "xfs_rtalloc.h" 41#include "xfs_rtalloc.h"
42#include "xfs_error.h" 42#include "xfs_error.h"
43#include "xfs_itable.h" 43#include "xfs_itable.h"
44#include "xfs_fsops.h"
44#include "xfs_rw.h" 45#include "xfs_rw.h"
45#include "xfs_acl.h" 46#include "xfs_acl.h"
46#include "xfs_attr.h" 47#include "xfs_attr.h"
@@ -738,11 +739,19 @@ xfs_fs_remount(
738 return -error; 739 return -error;
739} 740}
740 741
742/*
743 * Second stage of a freeze. The data is already frozen so we only
744 * need to take care of themetadata. Once that's done write a dummy
745 * record to dirty the log in case of a crash while frozen.
746 */
741STATIC void 747STATIC void
742xfs_fs_lockfs( 748xfs_fs_lockfs(
743 struct super_block *sb) 749 struct super_block *sb)
744{ 750{
745 xfs_freeze(XFS_M(sb)); 751 struct xfs_mount *mp = XFS_M(sb);
752
753 xfs_attr_quiesce(mp);
754 xfs_fs_log_dummy(mp);
746} 755}
747 756
748STATIC int 757STATIC int
diff --git a/fs/xfs/xfs_vfsops.c b/fs/xfs/xfs_vfsops.c
index 1249548aa12e..fd4a0dfc599f 100644
--- a/fs/xfs/xfs_vfsops.c
+++ b/fs/xfs/xfs_vfsops.c
@@ -692,7 +692,7 @@ xfs_quiesce_fs(
692 * care of the metadata. New transactions are already blocked, so we need to 692 * care of the metadata. New transactions are already blocked, so we need to
693 * wait for any remaining transactions to drain out before proceding. 693 * wait for any remaining transactions to drain out before proceding.
694 */ 694 */
695STATIC void 695void
696xfs_attr_quiesce( 696xfs_attr_quiesce(
697 xfs_mount_t *mp) 697 xfs_mount_t *mp)
698{ 698{
@@ -1902,16 +1902,3 @@ xfs_showargs(
1902 seq_puts(m, "," MNTOPT_DMAPI); 1902 seq_puts(m, "," MNTOPT_DMAPI);
1903 return 0; 1903 return 0;
1904} 1904}
1905
1906/*
1907 * Second stage of a freeze. The data is already frozen so we only
1908 * need to take care of themetadata. Once that's done write a dummy
1909 * record to dirty the log in case of a crash while frozen.
1910 */
1911void
1912xfs_freeze(
1913 xfs_mount_t *mp)
1914{
1915 xfs_attr_quiesce(mp);
1916 xfs_fs_log_dummy(mp);
1917}
diff --git a/fs/xfs/xfs_vfsops.h b/fs/xfs/xfs_vfsops.h
index ce3eb9454de4..38ed10397e07 100644
--- a/fs/xfs/xfs_vfsops.h
+++ b/fs/xfs/xfs_vfsops.h
@@ -19,8 +19,8 @@ int xfs_vget(struct xfs_mount *mp, bhv_vnode_t **vpp, struct xfs_fid *xfid);
19int xfs_parseargs(struct xfs_mount *mp, char *options, 19int xfs_parseargs(struct xfs_mount *mp, char *options,
20 struct xfs_mount_args *args, int update); 20 struct xfs_mount_args *args, int update);
21int xfs_showargs(struct xfs_mount *mp, struct seq_file *m); 21int xfs_showargs(struct xfs_mount *mp, struct seq_file *m);
22void xfs_freeze(struct xfs_mount *mp);
23void xfs_do_force_shutdown(struct xfs_mount *mp, int flags, char *fname, 22void xfs_do_force_shutdown(struct xfs_mount *mp, int flags, char *fname,
24 int lnnum); 23 int lnnum);
24void xfs_attr_quiesce(struct xfs_mount *mp);
25 25
26#endif /* _XFS_VFSOPS_H */ 26#endif /* _XFS_VFSOPS_H */