mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-11-01 17:08:10 +00:00
[XFS] Kill SYNC_CLOSE
SYNC_CLOSE is only ever used and checked in conjunction with SYNC_WAIT, and this only done in one spot. The only thing this does is make XFS_bflush() calls to the data buftargs. This will happen very shortly afterwards the xfs_sync() call anyway in the unmount path via the xfs_close_devices(), so this code is redundant and can be removed. That only user of SYNC_CLOSE is now gone, so kill the flag completely. SGI-PV: 988140 SGI-Modid: xfs-linux-melb:xfs-kern:32310a Signed-off-by: David Chinner <david@fromorbit.com> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com> Signed-off-by: Christoph Hellwig <hch@infradead.org>
This commit is contained in:
parent
e9f1c6ee12
commit
cb56a4b995
3 changed files with 2 additions and 40 deletions
|
@ -1026,16 +1026,6 @@ xfs_fs_put_super(
|
||||||
error = xfs_unmount_flush(mp, 0);
|
error = xfs_unmount_flush(mp, 0);
|
||||||
WARN_ON(error);
|
WARN_ON(error);
|
||||||
|
|
||||||
/*
|
|
||||||
* If we're forcing a shutdown, typically because of a media error,
|
|
||||||
* we want to make sure we invalidate dirty pages that belong to
|
|
||||||
* referenced vnodes as well.
|
|
||||||
*/
|
|
||||||
if (XFS_FORCED_SHUTDOWN(mp)) {
|
|
||||||
error = xfs_sync(mp, SYNC_WAIT | SYNC_CLOSE);
|
|
||||||
ASSERT(error != EFSCORRUPTED);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mp->m_flags & XFS_MOUNT_DMAPI) {
|
if (mp->m_flags & XFS_MOUNT_DMAPI) {
|
||||||
XFS_SEND_UNMOUNT(mp, rip, DM_RIGHT_NULL, 0, 0,
|
XFS_SEND_UNMOUNT(mp, rip, DM_RIGHT_NULL, 0, 0,
|
||||||
unmount_event_flags);
|
unmount_event_flags);
|
||||||
|
|
|
@ -70,7 +70,7 @@ xfs_sync_inodes_ag(
|
||||||
if (flags & SYNC_WAIT)
|
if (flags & SYNC_WAIT)
|
||||||
fflag = 0; /* synchronous overrides all */
|
fflag = 0; /* synchronous overrides all */
|
||||||
|
|
||||||
if (flags & (SYNC_DELWRI | SYNC_CLOSE)) {
|
if (flags & SYNC_DELWRI) {
|
||||||
/*
|
/*
|
||||||
* We need the I/O lock if we're going to call any of
|
* We need the I/O lock if we're going to call any of
|
||||||
* the flush/inval routines.
|
* the flush/inval routines.
|
||||||
|
@ -117,7 +117,7 @@ xfs_sync_inodes_ag(
|
||||||
}
|
}
|
||||||
|
|
||||||
/* nothing to sync during shutdown */
|
/* nothing to sync during shutdown */
|
||||||
if (XFS_FORCED_SHUTDOWN(mp) && !(flags & SYNC_CLOSE)) {
|
if (XFS_FORCED_SHUTDOWN(mp)) {
|
||||||
read_unlock(&pag->pag_ici_lock);
|
read_unlock(&pag->pag_ici_lock);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -152,20 +152,6 @@ xfs_sync_inodes_ag(
|
||||||
* If we need to drop the lock, insert a marker if we
|
* If we need to drop the lock, insert a marker if we
|
||||||
* have not already done so.
|
* have not already done so.
|
||||||
*/
|
*/
|
||||||
if (flags & SYNC_CLOSE) {
|
|
||||||
xfs_iunlock(ip, XFS_ILOCK_SHARED);
|
|
||||||
if (XFS_FORCED_SHUTDOWN(mp))
|
|
||||||
xfs_tosspages(ip, 0, -1, FI_REMAPF);
|
|
||||||
else
|
|
||||||
error = xfs_flushinval_pages(ip, 0, -1,
|
|
||||||
FI_REMAPF);
|
|
||||||
/* wait for I/O on freeze */
|
|
||||||
if (flags & SYNC_IOWAIT)
|
|
||||||
vn_iowait(ip);
|
|
||||||
|
|
||||||
xfs_ilock(ip, XFS_ILOCK_SHARED);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((flags & SYNC_DELWRI) && VN_DIRTY(inode)) {
|
if ((flags & SYNC_DELWRI) && VN_DIRTY(inode)) {
|
||||||
xfs_iunlock(ip, XFS_ILOCK_SHARED);
|
xfs_iunlock(ip, XFS_ILOCK_SHARED);
|
||||||
error = xfs_flush_pages(ip, 0, -1, fflag, FI_NONE);
|
error = xfs_flush_pages(ip, 0, -1, fflag, FI_NONE);
|
||||||
|
@ -390,8 +376,6 @@ xfs_quiesce_data(
|
||||||
* inodes. SYNC_WAIT and SYNC_BDFLUSH are used to
|
* inodes. SYNC_WAIT and SYNC_BDFLUSH are used to
|
||||||
* determine if they should be flushed sync, async, or
|
* determine if they should be flushed sync, async, or
|
||||||
* delwri.
|
* delwri.
|
||||||
* SYNC_CLOSE - This flag is passed when the system is being
|
|
||||||
* unmounted. We should sync and invalidate everything.
|
|
||||||
* SYNC_FSDATA - This indicates that the caller would like to make
|
* SYNC_FSDATA - This indicates that the caller would like to make
|
||||||
* sure the superblock is safe on disk. We can ensure
|
* sure the superblock is safe on disk. We can ensure
|
||||||
* this by simply making sure the log gets flushed
|
* this by simply making sure the log gets flushed
|
||||||
|
@ -472,17 +456,6 @@ xfs_sync(
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* When shutting down, we need to insure that the AIL is pushed
|
|
||||||
* to disk or the filesystem can appear corrupt from the PROM.
|
|
||||||
*/
|
|
||||||
if ((flags & (SYNC_CLOSE|SYNC_WAIT)) == (SYNC_CLOSE|SYNC_WAIT)) {
|
|
||||||
XFS_bflush(mp->m_ddev_targp);
|
|
||||||
if (mp->m_rtdev_targp) {
|
|
||||||
XFS_bflush(mp->m_rtdev_targp);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return XFS_ERROR(last_error);
|
return XFS_ERROR(last_error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,6 @@ typedef struct bhv_vfs_sync_work {
|
||||||
} bhv_vfs_sync_work_t;
|
} bhv_vfs_sync_work_t;
|
||||||
|
|
||||||
#define SYNC_ATTR 0x0001 /* sync attributes */
|
#define SYNC_ATTR 0x0001 /* sync attributes */
|
||||||
#define SYNC_CLOSE 0x0002 /* close file system down */
|
|
||||||
#define SYNC_DELWRI 0x0004 /* look at delayed writes */
|
#define SYNC_DELWRI 0x0004 /* look at delayed writes */
|
||||||
#define SYNC_WAIT 0x0008 /* wait for i/o to complete */
|
#define SYNC_WAIT 0x0008 /* wait for i/o to complete */
|
||||||
#define SYNC_BDFLUSH 0x0010 /* BDFLUSH is calling -- don't block */
|
#define SYNC_BDFLUSH 0x0010 /* BDFLUSH is calling -- don't block */
|
||||||
|
|
Loading…
Reference in a new issue