]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - fs/btrfs/ioctl.c
Merge branch 'bug-fixes' of git://repo.or.cz/linux-btrfs-devel into btrfs-38
[mv-sheeva.git] / fs / btrfs / ioctl.c
index a506a22b522a1c6836b0fcca04d7bf4441dec633..edd82becbb9e3476f9ee7c97817185e43180bd33 100644 (file)
@@ -1898,7 +1898,10 @@ static noinline long btrfs_ioctl_clone(struct file *file, unsigned long srcfd,
 
                        memcpy(&new_key, &key, sizeof(new_key));
                        new_key.objectid = inode->i_ino;
-                       new_key.offset = key.offset + destoff - off;
+                       if (off <= key.offset)
+                               new_key.offset = key.offset + destoff - off;
+                       else
+                               new_key.offset = destoff;
 
                        trans = btrfs_start_transaction(root, 1);
                        if (IS_ERR(trans)) {