aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_vfsops.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/xfs/xfs_vfsops.c')
-rw-r--r--fs/xfs/xfs_vfsops.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/fs/xfs/xfs_vfsops.c b/fs/xfs/xfs_vfsops.c
index 6351efb569c7..09e186d02c11 100644
--- a/fs/xfs/xfs_vfsops.c
+++ b/fs/xfs/xfs_vfsops.c
@@ -672,6 +672,8 @@ void
672xfs_attr_quiesce( 672xfs_attr_quiesce(
673 xfs_mount_t *mp) 673 xfs_mount_t *mp)
674{ 674{
675 int error = 0;
676
675 /* wait for all modifications to complete */ 677 /* wait for all modifications to complete */
676 while (atomic_read(&mp->m_active_trans) > 0) 678 while (atomic_read(&mp->m_active_trans) > 0)
677 delay(100); 679 delay(100);
@@ -682,7 +684,11 @@ xfs_attr_quiesce(
682 ASSERT_ALWAYS(atomic_read(&mp->m_active_trans) == 0); 684 ASSERT_ALWAYS(atomic_read(&mp->m_active_trans) == 0);
683 685
684 /* Push the superblock and write an unmount record */ 686 /* Push the superblock and write an unmount record */
685 xfs_log_sbcount(mp, 1); 687 error = xfs_log_sbcount(mp, 1);
688 if (error)
689 xfs_fs_cmn_err(CE_WARN, mp,
690 "xfs_attr_quiesce: failed to log sb changes. "
691 "Frozen image may not be consistent.");
686 xfs_log_unmount_write(mp); 692 xfs_log_unmount_write(mp);
687 xfs_unmountfs_writesb(mp); 693 xfs_unmountfs_writesb(mp);
688} 694}
@@ -1316,8 +1322,11 @@ xfs_syncsub(
1316 * of sync if we crash or get a forced shutdown. We don't want to force 1322 * of sync if we crash or get a forced shutdown. We don't want to force
1317 * this to disk, just get a transaction into the iclogs.... 1323 * this to disk, just get a transaction into the iclogs....
1318 */ 1324 */
1319 if (flags & SYNC_SUPER) 1325 if (flags & SYNC_SUPER) {
1320 xfs_log_sbcount(mp, 0); 1326 error = xfs_log_sbcount(mp, 0);
1327 if (error)
1328 last_error = error;
1329 }
1321 1330
1322 /* 1331 /*
1323 * Now check to see if the log needs a "dummy" transaction. 1332 * Now check to see if the log needs a "dummy" transaction.