diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index 1acd63fcb252..38b76cc02f48 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c @@ -3918,6 +3918,9 @@ int btrfs_check_data_free_space(struct inode *inode, u64 bytes, u64 write_bytes) !atomic_read(&root->fs_info->open_ioctl_trans)) { need_commit--; + if (need_commit > 0) + btrfs_wait_ordered_roots(fs_info, -1); + trans = btrfs_join_transaction(root); if (IS_ERR(trans)) return PTR_ERR(trans);