diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_sync.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index 320be6aea492..7647b8db3ca3 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c | |||
@@ -419,14 +419,16 @@ xfs_quiesce_data( | |||
419 | /* push non-blocking */ | 419 | /* push non-blocking */ |
420 | xfs_sync_data(mp, 0); | 420 | xfs_sync_data(mp, 0); |
421 | xfs_qm_sync(mp, SYNC_TRYLOCK); | 421 | xfs_qm_sync(mp, SYNC_TRYLOCK); |
422 | xfs_filestream_flush(mp); | ||
423 | 422 | ||
424 | /* push and block */ | 423 | /* push and block till complete */ |
425 | xfs_sync_data(mp, SYNC_WAIT); | 424 | xfs_sync_data(mp, SYNC_WAIT); |
426 | xfs_qm_sync(mp, SYNC_WAIT); | 425 | xfs_qm_sync(mp, SYNC_WAIT); |
427 | 426 | ||
427 | /* drop inode references pinned by filestreams */ | ||
428 | xfs_filestream_flush(mp); | ||
429 | |||
428 | /* write superblock and hoover up shutdown errors */ | 430 | /* write superblock and hoover up shutdown errors */ |
429 | error = xfs_sync_fsdata(mp, 0); | 431 | error = xfs_sync_fsdata(mp, SYNC_WAIT); |
430 | 432 | ||
431 | /* flush data-only devices */ | 433 | /* flush data-only devices */ |
432 | if (mp->m_rtdev_targp) | 434 | if (mp->m_rtdev_targp) |