diff options
Diffstat (limited to 'fs/gfs2/file.c')
-rw-r--r-- | fs/gfs2/file.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/gfs2/file.c b/fs/gfs2/file.c index 72c3866a7320..0621b46d474d 100644 --- a/fs/gfs2/file.c +++ b/fs/gfs2/file.c | |||
@@ -650,7 +650,7 @@ static int gfs2_fsync(struct file *file, loff_t start, loff_t end, | |||
650 | { | 650 | { |
651 | struct address_space *mapping = file->f_mapping; | 651 | struct address_space *mapping = file->f_mapping; |
652 | struct inode *inode = mapping->host; | 652 | struct inode *inode = mapping->host; |
653 | int sync_state = inode->i_state & (I_DIRTY_SYNC|I_DIRTY_DATASYNC); | 653 | int sync_state = inode->i_state & I_DIRTY; |
654 | struct gfs2_inode *ip = GFS2_I(inode); | 654 | struct gfs2_inode *ip = GFS2_I(inode); |
655 | int ret = 0, ret1 = 0; | 655 | int ret = 0, ret1 = 0; |
656 | 656 | ||
@@ -660,6 +660,8 @@ static int gfs2_fsync(struct file *file, loff_t start, loff_t end, | |||
660 | return ret1; | 660 | return ret1; |
661 | } | 661 | } |
662 | 662 | ||
663 | if (!gfs2_is_jdata(ip)) | ||
664 | sync_state &= ~I_DIRTY_PAGES; | ||
663 | if (datasync) | 665 | if (datasync) |
664 | sync_state &= ~I_DIRTY_SYNC; | 666 | sync_state &= ~I_DIRTY_SYNC; |
665 | 667 | ||