summaryrefslogtreecommitdiff
path: root/fs/libfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/libfs.c')
-rw-r--r--fs/libfs.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/libfs.c b/fs/libfs.c
index 57e5971b6331..27d7dc16fcb0 100644
--- a/fs/libfs.c
+++ b/fs/libfs.c
@@ -1559,10 +1559,12 @@ int simple_fsync_noflush(struct file *file, loff_t start, loff_t end,
if (err)
return err;
- if (!(inode_state_read_once(inode) & (I_DIRTY_ALL | I_SYNC)))
+ if (!(inode_state_read_once(inode) &
+ (I_DIRTY_ALL | I_SYNC | I_METADATA_WRITEBACK)))
goto out;
if (datasync &&
- !(inode_state_read_once(inode) & (I_DIRTY_DATASYNC | I_SYNC)))
+ !(inode_state_read_once(inode) &
+ (I_DIRTY_DATASYNC | I_SYNC | I_METADATA_WRITEBACK)))
goto out;
ret = sync_inode_metadata(inode, 1);