|
@@ -1314,7 +1314,6 @@ xfs_reflink_remap_prep(
|
|
struct inode *inode_out = file_inode(file_out);
|
|
struct inode *inode_out = file_inode(file_out);
|
|
struct xfs_inode *dest = XFS_I(inode_out);
|
|
struct xfs_inode *dest = XFS_I(inode_out);
|
|
bool same_inode = (inode_in == inode_out);
|
|
bool same_inode = (inode_in == inode_out);
|
|
- u64 blkmask = i_blocksize(inode_in) - 1;
|
|
|
|
ssize_t ret;
|
|
ssize_t ret;
|
|
|
|
|
|
/* Lock both files against IO */
|
|
/* Lock both files against IO */
|
|
@@ -1342,24 +1341,6 @@ xfs_reflink_remap_prep(
|
|
if (ret < 0 || *len == 0)
|
|
if (ret < 0 || *len == 0)
|
|
goto out_unlock;
|
|
goto out_unlock;
|
|
|
|
|
|
- /*
|
|
|
|
- * If the dedupe data matches, chop off the partial EOF block
|
|
|
|
- * from the source file so we don't try to dedupe the partial
|
|
|
|
- * EOF block.
|
|
|
|
- */
|
|
|
|
- if (remap_flags & REMAP_FILE_DEDUP) {
|
|
|
|
- *len &= ~blkmask;
|
|
|
|
- } else if (*len & blkmask) {
|
|
|
|
- /*
|
|
|
|
- * The user is attempting to share a partial EOF block,
|
|
|
|
- * if it's inside the destination EOF then reject it.
|
|
|
|
- */
|
|
|
|
- if (pos_out + *len < i_size_read(inode_out)) {
|
|
|
|
- ret = -EINVAL;
|
|
|
|
- goto out_unlock;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
/* Attach dquots to dest inode before changing block map */
|
|
/* Attach dquots to dest inode before changing block map */
|
|
ret = xfs_qm_dqattach(dest);
|
|
ret = xfs_qm_dqattach(dest);
|
|
if (ret)
|
|
if (ret)
|