On Fri, 19 Nov 2010, Li Zefan wrote: > Set src_offset = 0, src_length = 20K, dest_offset = 20K. And the > original filesize of the dest file 'file2' is 30K: > > # ls -l /mnt/file2 > -rw-r--r-- 1 root root 30720 Nov 18 16:42 /mnt/file2 > > Now clone file1 to file2, the dest file should be 40K, but it > still shows 30K: > > # ls -l /mnt/file2 > -rw-r--r-- 1 root root 30720 Nov 18 16:42 /mnt/file2 > > Signed-off-by: Li Zefan <lizf@xxxxxxxxxxxxxx> > --- > fs/btrfs/ioctl.c | 4 ++-- > 1 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c > index 81b47bd..6b4bfa7 100644 > --- a/fs/btrfs/ioctl.c > +++ b/fs/btrfs/ioctl.c > @@ -1873,8 +1873,8 @@ static noinline long btrfs_ioctl_clone(struct file *file, unsigned long srcfd, > * but shouldn't round up the file size > */ > endoff = new_key.offset + datal; > - if (endoff > off+olen) > - endoff = off+olen; > + if (endoff > destoff+olen) > + endoff = destoff+olen; > if (endoff > inode->i_size) > btrfs_i_size_write(inode, endoff); Reviewed-by: Sage Weil <sage@xxxxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
