|
@@ -4557,9 +4557,15 @@ long btrfs_ioctl(struct file *file, unsigned int
|
|
|
return btrfs_ioctl_logical_to_ino(root, argp);
|
|
|
case BTRFS_IOC_SPACE_INFO:
|
|
|
return btrfs_ioctl_space_info(root, argp);
|
|
|
- case BTRFS_IOC_SYNC:
|
|
|
- btrfs_sync_fs(file->f_dentry->d_sb, 1);
|
|
|
- return 0;
|
|
|
+ case BTRFS_IOC_SYNC: {
|
|
|
+ int ret;
|
|
|
+
|
|
|
+ ret = btrfs_start_all_delalloc_inodes(root->fs_info, 0);
|
|
|
+ if (ret)
|
|
|
+ return ret;
|
|
|
+ ret = btrfs_sync_fs(file->f_dentry->d_sb, 1);
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
case BTRFS_IOC_START_SYNC:
|
|
|
return btrfs_ioctl_start_sync(root, argp);
|
|
|
case BTRFS_IOC_WAIT_SYNC:
|