diff options
author | Sage Weil <sage@newdream.net> | 2009-09-21 16:00:27 -0400 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2009-09-21 16:00:27 -0400 |
commit | 1fb58a6051cd904a9f8e0344b22e31921d6b5a4d (patch) | |
tree | 2f8c1a89b3e4f119590e89cebe1a5be1a02f487a /fs | |
parent | 76dda93c6ae2c1dc3e6cde34569d6aca26b0c918 (diff) |
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')
-rw-r--r-- | fs/btrfs/ioctl.c | 3 |
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, | |||
1105 | datao += off - key.offset; | 1105 | datao += off - key.offset; |
1106 | datal -= off - key.offset; | 1106 | datal -= off - key.offset; |
1107 | } | 1107 | } |
1108 | if (key.offset + datao + datal + key.offset > | 1108 | if (key.offset + datao + datal > off + len) |
1109 | off + len) | ||
1110 | datal = off + len - key.offset - datao; | 1109 | datal = off + len - key.offset - datao; |
1111 | /* disko == 0 means it's a hole */ | 1110 | /* disko == 0 means it's a hole */ |
1112 | if (!disko) | 1111 | if (!disko) |