aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_sync.c
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2012-06-12 10:20:39 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2012-07-31 01:45:48 -0400
commitd9457dc056249913a7abe8b71dc09e427e590e35 (patch)
tree8f0c6681d4c5802a6f5a124111b9d3958f0b281b /fs/xfs/xfs_sync.c
parent8e8ad8a57c75f3bda2d03a4c4396a9a7024ad275 (diff)
xfs: Convert to new freezing code
Generic code now blocks all writers from standard write paths. So we add blocking of all writers coming from ioctl (we get a protection of ioctl against racing remount read-only as a bonus) and convert xfs_file_aio_write() to a non-racy freeze protection. We also keep freeze protection on transaction start to block internal filesystem writes such as removal of preallocated blocks. CC: Ben Myers <bpm@sgi.com> CC: Alex Elder <elder@kernel.org> CC: xfs@oss.sgi.com Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/xfs/xfs_sync.c')
-rw-r--r--fs/xfs/xfs_sync.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/xfs/xfs_sync.c b/fs/xfs/xfs_sync.c
index 1e9ee064dbb2..0b9feacdcd1f 100644
--- a/fs/xfs/xfs_sync.c
+++ b/fs/xfs/xfs_sync.c
@@ -394,7 +394,7 @@ xfs_sync_worker(
394 if (!(mp->m_super->s_flags & MS_ACTIVE) && 394 if (!(mp->m_super->s_flags & MS_ACTIVE) &&
395 !(mp->m_flags & XFS_MOUNT_RDONLY)) { 395 !(mp->m_flags & XFS_MOUNT_RDONLY)) {
396 /* dgc: errors ignored here */ 396 /* dgc: errors ignored here */
397 if (mp->m_super->s_frozen == SB_UNFROZEN && 397 if (mp->m_super->s_writers.frozen == SB_UNFROZEN &&
398 xfs_log_need_covered(mp)) 398 xfs_log_need_covered(mp))
399 error = xfs_fs_log_dummy(mp); 399 error = xfs_fs_log_dummy(mp);
400 else 400 else