diff options
author | Dave Chinner <dchinner@redhat.com> | 2012-10-08 21:56:01 +1100 |
---|---|---|
committer | Ben Myers <bpm@sgi.com> | 2012-10-17 11:48:29 -0500 |
commit | 7f7bebefba152c5bdfe961cd2e97e8695a32998c (patch) | |
tree | 07aed46523a0bfa02e6d25f025861b8260e89f66 /fs/xfs/xfs_super.c | |
parent | 7e18530bef6a18a5479690ae7e8256319ecf1300 (diff) | |
download | linux-7f7bebefba152c5bdfe961cd2e97e8695a32998c.tar.gz linux-7f7bebefba152c5bdfe961cd2e97e8695a32998c.tar.bz2 linux-7f7bebefba152c5bdfe961cd2e97e8695a32998c.zip |
xfs: don't run the sync work if the filesystem is read-only
If the filesystem is mounted or remounted read-only, stop the sync
worker that tries to flush or cover the log if the filesystem is
dirty. It's read-only, so it isn't dirty. Restart it on a remount,rw
as necessary. This avoids the need for RO checks in the work.
Similarly, stop the sync work when the filesystem is frozen, and
start it again when the filesysetm is thawed. This avoids the need
for special freeze checks in the work.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Mark Tinguely <tinguely@sgi.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Ben Myers <bpm@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_super.c')
-rw-r--r-- | fs/xfs/xfs_super.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c index 9805cac81fc9..20fa955d80d1 100644 --- a/fs/xfs/xfs_super.c +++ b/fs/xfs/xfs_super.c @@ -1200,6 +1200,7 @@ xfs_fs_remount( * value if it is non-zero, otherwise go with the default. */ xfs_restore_resvblks(mp); + xfs_syncd_queue_sync(mp); } /* rw -> ro */ @@ -1245,6 +1246,7 @@ xfs_fs_unfreeze( struct xfs_mount *mp = XFS_M(sb); xfs_restore_resvblks(mp); + xfs_syncd_queue_sync(mp); return 0; } |