diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index 0726a734ee3884bec2224f68744b057052665140..126477eaecf56f074a03581c17079d6b985caa81 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c @@ -1157,6 +1157,8 @@ int btrfs_sync_file(struct file *file, struct dentry *dentry, int datasync) btrfs_wait_ordered_range(inode, 0, (u64)-1); root->log_batch++; + if (datasync && !(inode->i_state & I_DIRTY_PAGES)) + goto out; /* * ok we haven't committed the transaction yet, lets do a commit */