xfs
[Top] [All Lists]

[PATCH 07/12] xfs: remove explicit xfs_sync_data/xfs_sync_attr calls on

To: xfs@xxxxxxxxxxx
Subject: [PATCH 07/12] xfs: remove explicit xfs_sync_data/xfs_sync_attr calls on umount
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Mon, 21 Jun 2010 04:35:50 -0400
References: <20100621083543.125860679@xxxxxxxxxxxxxxxxxxxxxx>
User-agent: quilt/0.47-1
On the final put of a superblock the VFS already calls sync_filesystem
for us to write out all data and wait for it.  No need to start another
asynchronous writenack inside ->put_super.


Signed-off-by: Christoph Hellwig <hch@xxxxxx>

Index: xfs/fs/xfs/linux-2.6/xfs_super.c
===================================================================
--- xfs.orig/fs/xfs/linux-2.6/xfs_super.c       2010-06-19 11:54:54.072006021 
+0200
+++ xfs/fs/xfs/linux-2.6/xfs_super.c    2010-06-19 12:26:48.388003856 +0200
@@ -1160,18 +1160,6 @@ xfs_fs_put_super(
 
        xfs_syncd_stop(mp);
 
-       if (!(sb->s_flags & MS_RDONLY)) {
-               /*
-                * XXX(hch): this should be SYNC_WAIT.
-                *
-                * Or more likely not needed at all because the VFS is already
-                * calling ->sync_fs after shutting down all filestem
-                * operations and just before calling ->put_super.
-                */
-               xfs_sync_data(mp, 0);
-               xfs_sync_attr(mp, 0);
-       }
-
        /*
         * Blow away any referenced inode in the filestreams cache.
         * This can and will cause log traffic as inodes go inactive
Index: xfs/fs/xfs/linux-2.6/xfs_sync.c
===================================================================
--- xfs.orig/fs/xfs/linux-2.6/xfs_sync.c        2010-06-19 10:41:57.626004207 
+0200
+++ xfs/fs/xfs/linux-2.6/xfs_sync.c     2010-06-19 12:26:48.389003298 +0200
@@ -274,7 +274,7 @@ xfs_sync_inode_attr(
 /*
  * Write out pagecache data for the whole filesystem.
  */
-int
+STATIC int
 xfs_sync_data(
        struct xfs_mount        *mp,
        int                     flags)
@@ -295,7 +295,7 @@ xfs_sync_data(
 /*
  * Write out inode metadata (attributes) for the whole filesystem.
  */
-int
+STATIC int
 xfs_sync_attr(
        struct xfs_mount        *mp,
        int                     flags)
Index: xfs/fs/xfs/linux-2.6/xfs_sync.h
===================================================================
--- xfs.orig/fs/xfs/linux-2.6/xfs_sync.h        2010-06-19 10:41:57.647253683 
+0200
+++ xfs/fs/xfs/linux-2.6/xfs_sync.h     2010-06-19 12:26:48.391003717 +0200
@@ -35,9 +35,6 @@ typedef struct xfs_sync_work {
 int xfs_syncd_init(struct xfs_mount *mp);
 void xfs_syncd_stop(struct xfs_mount *mp);
 
-int xfs_sync_attr(struct xfs_mount *mp, int flags);
-int xfs_sync_data(struct xfs_mount *mp, int flags);
-
 int xfs_quiesce_data(struct xfs_mount *mp);
 void xfs_quiesce_attr(struct xfs_mount *mp);
 

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