Btrfs: fix arithmetic error in clone ioctl
Fix an arithmetic error that was breaking extents cloned via the clone ioctl starting in the second half of a file. Signed-off-by: Sage Weil <sage@newdream.net> Signed-off-by: Chris Mason <chris.mason@oracle.com>
This commit is contained in:
@@ -1105,8 +1105,7 @@ static noinline long btrfs_ioctl_clone(struct file *file, unsigned long srcfd,
|
|||||||
datao += off - key.offset;
|
datao += off - key.offset;
|
||||||
datal -= off - key.offset;
|
datal -= off - key.offset;
|
||||||
}
|
}
|
||||||
if (key.offset + datao + datal + key.offset >
|
if (key.offset + datao + datal > off + len)
|
||||||
off + len)
|
|
||||||
datal = off + len - key.offset - datao;
|
datal = off + len - key.offset - datao;
|
||||||
/* disko == 0 means it's a hole */
|
/* disko == 0 means it's a hole */
|
||||||
if (!disko)
|
if (!disko)
|
||||||
|
Reference in New Issue
Block a user