diff options
-rw-r--r-- | fs/xfs/linux-2.6/xfs_super.c | 2 | ||||
-rw-r--r-- | fs/xfs/linux-2.6/xfs_vfs.h | 3 | ||||
-rw-r--r-- | fs/xfs/xfs_vfsops.c | 17 |
3 files changed, 11 insertions, 11 deletions
diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index f3ad51602ebb..2a94859b9399 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c | |||
@@ -667,7 +667,7 @@ xfs_fs_sync_super( | |||
667 | * occur here so don't bother flushing the buftarg (i.e | 667 | * occur here so don't bother flushing the buftarg (i.e |
668 | * SYNC_QUIESCE) because it'll just get dirty again. | 668 | * SYNC_QUIESCE) because it'll just get dirty again. |
669 | */ | 669 | */ |
670 | flags = SYNC_FSDATA | SYNC_DELWRI | SYNC_WAIT | SYNC_DIO_WAIT; | 670 | flags = SYNC_FSDATA | SYNC_DELWRI | SYNC_WAIT | SYNC_IOWAIT; |
671 | } else | 671 | } else |
672 | flags = SYNC_FSDATA | (wait ? SYNC_WAIT : 0); | 672 | flags = SYNC_FSDATA | (wait ? SYNC_WAIT : 0); |
673 | 673 | ||
diff --git a/fs/xfs/linux-2.6/xfs_vfs.h b/fs/xfs/linux-2.6/xfs_vfs.h index 558823a83065..e2c2ce98ab5b 100644 --- a/fs/xfs/linux-2.6/xfs_vfs.h +++ b/fs/xfs/linux-2.6/xfs_vfs.h | |||
@@ -91,8 +91,7 @@ typedef enum { | |||
91 | #define SYNC_FSDATA 0x0020 /* flush fs data (e.g. superblocks) */ | 91 | #define SYNC_FSDATA 0x0020 /* flush fs data (e.g. superblocks) */ |
92 | #define SYNC_REFCACHE 0x0040 /* prune some of the nfs ref cache */ | 92 | #define SYNC_REFCACHE 0x0040 /* prune some of the nfs ref cache */ |
93 | #define SYNC_REMOUNT 0x0080 /* remount readonly, no dummy LRs */ | 93 | #define SYNC_REMOUNT 0x0080 /* remount readonly, no dummy LRs */ |
94 | #define SYNC_QUIESCE 0x0100 /* quiesce fileystem for a snapshot */ | 94 | #define SYNC_IOWAIT 0x0100 /* wait for all I/O to complete */ |
95 | #define SYNC_DIO_WAIT 0x0200 /* wait for direct I/O to complete */ | ||
96 | 95 | ||
97 | #define SHUTDOWN_META_IO_ERROR 0x0001 /* write attempt to metadata failed */ | 96 | #define SHUTDOWN_META_IO_ERROR 0x0001 /* write attempt to metadata failed */ |
98 | #define SHUTDOWN_LOG_IO_ERROR 0x0002 /* write attempt to the log failed */ | 97 | #define SHUTDOWN_LOG_IO_ERROR 0x0002 /* write attempt to the log failed */ |
diff --git a/fs/xfs/xfs_vfsops.c b/fs/xfs/xfs_vfsops.c index c2a6eab7fa2d..29f72f613782 100644 --- a/fs/xfs/xfs_vfsops.c +++ b/fs/xfs/xfs_vfsops.c | |||
@@ -872,10 +872,10 @@ xfs_statvfs( | |||
872 | * this by simply making sure the log gets flushed | 872 | * this by simply making sure the log gets flushed |
873 | * if SYNC_BDFLUSH is set, and by actually writing it | 873 | * if SYNC_BDFLUSH is set, and by actually writing it |
874 | * out otherwise. | 874 | * out otherwise. |
875 | * SYNC_DIO_WAIT - The caller wants us to wait for all direct I/Os | 875 | * SYNC_IOWAIT - The caller wants us to wait for all data I/O to complete |
876 | * as well to ensure all data I/O completes before we | 876 | * before we return (including direct I/O). Forms the drain |
877 | * return. Forms the drain side of the write barrier needed | 877 | * side of the write barrier needed to safely quiesce the |
878 | * to safely quiesce the filesystem. | 878 | * filesystem. |
879 | * | 879 | * |
880 | */ | 880 | */ |
881 | /*ARGSUSED*/ | 881 | /*ARGSUSED*/ |
@@ -1174,10 +1174,11 @@ xfs_sync_inodes( | |||
1174 | 1174 | ||
1175 | } | 1175 | } |
1176 | /* | 1176 | /* |
1177 | * When freezing, we need to wait ensure direct I/O is complete | 1177 | * When freezing, we need to wait ensure all I/O (including direct |
1178 | * as well to ensure all data modification is complete here | 1178 | * I/O) is complete to ensure no further data modification can take |
1179 | * place after this point | ||
1179 | */ | 1180 | */ |
1180 | if (flags & SYNC_DIO_WAIT) | 1181 | if (flags & SYNC_IOWAIT) |
1181 | vn_iowait(vp); | 1182 | vn_iowait(vp); |
1182 | 1183 | ||
1183 | if (flags & SYNC_BDFLUSH) { | 1184 | if (flags & SYNC_BDFLUSH) { |
@@ -1975,7 +1976,7 @@ xfs_freeze( | |||
1975 | /* flush inodes and push all remaining buffers out to disk */ | 1976 | /* flush inodes and push all remaining buffers out to disk */ |
1976 | xfs_quiesce_fs(mp); | 1977 | xfs_quiesce_fs(mp); |
1977 | 1978 | ||
1978 | BUG_ON(atomic_read(&mp->m_active_trans) > 0); | 1979 | ASSERT_ALWAYS(atomic_read(&mp->m_active_trans) == 0); |
1979 | 1980 | ||
1980 | /* Push the superblock and write an unmount record */ | 1981 | /* Push the superblock and write an unmount record */ |
1981 | xfs_log_unmount_write(mp); | 1982 | xfs_log_unmount_write(mp); |