summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/ioctl.c
diff options
context:
space:
mode:
authorSage Weil2009-09-21 22:00:27 +0200
committerChris Mason2009-09-21 22:00:27 +0200
commit1fb58a6051cd904a9f8e0344b22e31921d6b5a4d (patch)
tree2f8c1a89b3e4f119590e89cebe1a5be1a02f487a /fs/btrfs/ioctl.c
parentBtrfs: add snapshot/subvolume destroy ioctl (diff)
downloadkernel-qcow2-linux-1fb58a6051cd904a9f8e0344b22e31921d6b5a4d.tar.gz
kernel-qcow2-linux-1fb58a6051cd904a9f8e0344b22e31921d6b5a4d.tar.xz
kernel-qcow2-linux-1fb58a6051cd904a9f8e0344b22e31921d6b5a4d.zip
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>
Diffstat (limited to 'fs/btrfs/ioctl.c')
-rw-r--r--fs/btrfs/ioctl.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index a13fd556db74..a8577a7f26ab 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -1105,8 +1105,7 @@ static noinline long btrfs_ioctl_clone(struct file *file, unsigned long srcfd,
datao += off - key.offset;
datal -= off - key.offset;
}
- if (key.offset + datao + datal + key.offset >
- off + len)
+ if (key.offset + datao + datal > off + len)
datal = off + len - key.offset - datao;
/* disko == 0 means it's a hole */
if (!disko)