diff options
Diffstat (limited to 'fs/xfs/xfs_inode_item.c')
-rw-r--r-- | fs/xfs/xfs_inode_item.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/fs/xfs/xfs_inode_item.c b/fs/xfs/xfs_inode_item.c index 48ec1c0b23ce..207553e82954 100644 --- a/fs/xfs/xfs_inode_item.c +++ b/fs/xfs/xfs_inode_item.c | |||
@@ -866,10 +866,14 @@ xfs_inode_item_push( | |||
866 | iip->ili_format.ilf_fields != 0); | 866 | iip->ili_format.ilf_fields != 0); |
867 | 867 | ||
868 | /* | 868 | /* |
869 | * Write out the inode. The completion routine ('iflush_done') will | 869 | * Push the inode to it's backing buffer. This will not remove the |
870 | * pull it from the AIL, mark it clean, unlock the flush lock. | 870 | * inode from the AIL - a further push will be required to trigger a |
871 | * buffer push. However, this allows all the dirty inodes to be pushed | ||
872 | * to the buffer before it is pushed to disk. THe buffer IO completion | ||
873 | * will pull th einode from the AIL, mark it clean and unlock the flush | ||
874 | * lock. | ||
871 | */ | 875 | */ |
872 | (void) xfs_iflush(ip, XFS_IFLUSH_ASYNC); | 876 | (void) xfs_iflush(ip, 0); |
873 | xfs_iunlock(ip, XFS_ILOCK_SHARED); | 877 | xfs_iunlock(ip, XFS_ILOCK_SHARED); |
874 | 878 | ||
875 | return; | 879 | return; |