Loading fs/btrfs/ctree.h +2 −2 Original line number Diff line number Diff line Loading @@ -3247,7 +3247,7 @@ void btrfs_get_block_group_info(struct list_head *groups_list, struct btrfs_ioctl_space_info *space); void btrfs_update_ioctl_balance_args(struct btrfs_fs_info *fs_info, struct btrfs_ioctl_balance_args *bargs); ssize_t btrfs_dedupe_file_range(struct file *src_file, u64 loff, u64 olen, int btrfs_dedupe_file_range(struct file *src_file, u64 loff, u64 olen, struct file *dst_file, u64 dst_loff); /* file.c */ Loading fs/btrfs/ioctl.c +3 −7 Original line number Diff line number Diff line Loading @@ -3600,13 +3600,12 @@ static int btrfs_extent_same(struct inode *src, u64 loff, u64 olen, return ret; } ssize_t btrfs_dedupe_file_range(struct file *src_file, u64 loff, u64 olen, int btrfs_dedupe_file_range(struct file *src_file, u64 loff, u64 olen, struct file *dst_file, u64 dst_loff) { struct inode *src = file_inode(src_file); struct inode *dst = file_inode(dst_file); u64 bs = BTRFS_I(src)->root->fs_info->sb->s_blocksize; ssize_t res; if (WARN_ON_ONCE(bs < PAGE_SIZE)) { /* Loading @@ -3617,10 +3616,7 @@ ssize_t btrfs_dedupe_file_range(struct file *src_file, u64 loff, u64 olen, return -EINVAL; } res = btrfs_extent_same(src, loff, olen, dst, dst_loff); if (res) return res; return olen; return btrfs_extent_same(src, loff, olen, dst, dst_loff); } static int clone_finish_inode_update(struct btrfs_trans_handle *trans, Loading fs/ocfs2/file.c +6 −11 Original line number Diff line number Diff line Loading @@ -2537,19 +2537,14 @@ static int ocfs2_file_clone_range(struct file *file_in, len, false); } static ssize_t ocfs2_file_dedupe_range(struct file *src_file, static int ocfs2_file_dedupe_range(struct file *src_file, u64 loff, u64 len, struct file *dst_file, u64 dst_loff) { int error; error = ocfs2_reflink_remap_range(src_file, loff, dst_file, dst_loff, return ocfs2_reflink_remap_range(src_file, loff, dst_file, dst_loff, len, true); if (error) return error; return len; } const struct inode_operations ocfs2_file_iops = { Loading fs/read_write.c +2 −2 Original line number Diff line number Diff line Loading @@ -1976,7 +1976,7 @@ int vfs_dedupe_file_range(struct file *file, struct file_dedupe_range *same) u16 count = same->dest_count; struct file *dst_file; loff_t dst_off; ssize_t deduped; int deduped; if (!(file->f_mode & FMODE_READ)) return -EINVAL; Loading Loading @@ -2056,7 +2056,7 @@ int vfs_dedupe_file_range(struct file *file, struct file_dedupe_range *same) else if (deduped < 0) info->status = deduped; else info->bytes_deduped += deduped; info->bytes_deduped += len; } next_file: Loading fs/xfs/xfs_file.c +2 −17 Original line number Diff line number Diff line Loading @@ -933,7 +933,7 @@ xfs_file_clone_range( len, false); } STATIC ssize_t STATIC int xfs_file_dedupe_range( struct file *src_file, u64 loff, Loading @@ -941,23 +941,8 @@ xfs_file_dedupe_range( struct file *dst_file, u64 dst_loff) { struct inode *srci = file_inode(src_file); u64 max_dedupe; int error; /* * Since we have to read all these pages in to compare them, cut * it off at MAX_RW_COUNT/2 rounded down to the nearest block. * That means we won't do more than MAX_RW_COUNT IO per request. */ max_dedupe = (MAX_RW_COUNT >> 1) & ~(i_blocksize(srci) - 1); if (len > max_dedupe) len = max_dedupe; error = xfs_reflink_remap_range(src_file, loff, dst_file, dst_loff, return xfs_reflink_remap_range(src_file, loff, dst_file, dst_loff, len, true); if (error) return error; return len; } STATIC int Loading Loading
fs/btrfs/ctree.h +2 −2 Original line number Diff line number Diff line Loading @@ -3247,7 +3247,7 @@ void btrfs_get_block_group_info(struct list_head *groups_list, struct btrfs_ioctl_space_info *space); void btrfs_update_ioctl_balance_args(struct btrfs_fs_info *fs_info, struct btrfs_ioctl_balance_args *bargs); ssize_t btrfs_dedupe_file_range(struct file *src_file, u64 loff, u64 olen, int btrfs_dedupe_file_range(struct file *src_file, u64 loff, u64 olen, struct file *dst_file, u64 dst_loff); /* file.c */ Loading
fs/btrfs/ioctl.c +3 −7 Original line number Diff line number Diff line Loading @@ -3600,13 +3600,12 @@ static int btrfs_extent_same(struct inode *src, u64 loff, u64 olen, return ret; } ssize_t btrfs_dedupe_file_range(struct file *src_file, u64 loff, u64 olen, int btrfs_dedupe_file_range(struct file *src_file, u64 loff, u64 olen, struct file *dst_file, u64 dst_loff) { struct inode *src = file_inode(src_file); struct inode *dst = file_inode(dst_file); u64 bs = BTRFS_I(src)->root->fs_info->sb->s_blocksize; ssize_t res; if (WARN_ON_ONCE(bs < PAGE_SIZE)) { /* Loading @@ -3617,10 +3616,7 @@ ssize_t btrfs_dedupe_file_range(struct file *src_file, u64 loff, u64 olen, return -EINVAL; } res = btrfs_extent_same(src, loff, olen, dst, dst_loff); if (res) return res; return olen; return btrfs_extent_same(src, loff, olen, dst, dst_loff); } static int clone_finish_inode_update(struct btrfs_trans_handle *trans, Loading
fs/ocfs2/file.c +6 −11 Original line number Diff line number Diff line Loading @@ -2537,19 +2537,14 @@ static int ocfs2_file_clone_range(struct file *file_in, len, false); } static ssize_t ocfs2_file_dedupe_range(struct file *src_file, static int ocfs2_file_dedupe_range(struct file *src_file, u64 loff, u64 len, struct file *dst_file, u64 dst_loff) { int error; error = ocfs2_reflink_remap_range(src_file, loff, dst_file, dst_loff, return ocfs2_reflink_remap_range(src_file, loff, dst_file, dst_loff, len, true); if (error) return error; return len; } const struct inode_operations ocfs2_file_iops = { Loading
fs/read_write.c +2 −2 Original line number Diff line number Diff line Loading @@ -1976,7 +1976,7 @@ int vfs_dedupe_file_range(struct file *file, struct file_dedupe_range *same) u16 count = same->dest_count; struct file *dst_file; loff_t dst_off; ssize_t deduped; int deduped; if (!(file->f_mode & FMODE_READ)) return -EINVAL; Loading Loading @@ -2056,7 +2056,7 @@ int vfs_dedupe_file_range(struct file *file, struct file_dedupe_range *same) else if (deduped < 0) info->status = deduped; else info->bytes_deduped += deduped; info->bytes_deduped += len; } next_file: Loading
fs/xfs/xfs_file.c +2 −17 Original line number Diff line number Diff line Loading @@ -933,7 +933,7 @@ xfs_file_clone_range( len, false); } STATIC ssize_t STATIC int xfs_file_dedupe_range( struct file *src_file, u64 loff, Loading @@ -941,23 +941,8 @@ xfs_file_dedupe_range( struct file *dst_file, u64 dst_loff) { struct inode *srci = file_inode(src_file); u64 max_dedupe; int error; /* * Since we have to read all these pages in to compare them, cut * it off at MAX_RW_COUNT/2 rounded down to the nearest block. * That means we won't do more than MAX_RW_COUNT IO per request. */ max_dedupe = (MAX_RW_COUNT >> 1) & ~(i_blocksize(srci) - 1); if (len > max_dedupe) len = max_dedupe; error = xfs_reflink_remap_range(src_file, loff, dst_file, dst_loff, return xfs_reflink_remap_range(src_file, loff, dst_file, dst_loff, len, true); if (error) return error; return len; } STATIC int Loading