Btrfs: add dummy extent if dst offset excceeds file end in
You can see there's no file extent with range [0, 4096]. Check this by btrfsck: # btrfsck /dev/sda7 root 5 inode 258 errors 100 ... Signed-off-by: Li Zefan <lizf@cn.fujitsu.com> Signed-off-by: Chris Mason <chris.mason@oracle.com>
This commit is contained in:
@@ -2228,6 +2228,12 @@ static noinline long btrfs_ioctl_clone(struct file *file, unsigned long srcfd,
|
|||||||
!IS_ALIGNED(destoff, bs))
|
!IS_ALIGNED(destoff, bs))
|
||||||
goto out_unlock;
|
goto out_unlock;
|
||||||
|
|
||||||
|
if (destoff > inode->i_size) {
|
||||||
|
ret = btrfs_cont_expand(inode, inode->i_size, destoff);
|
||||||
|
if (ret)
|
||||||
|
goto out_unlock;
|
||||||
|
}
|
||||||
|
|
||||||
/* do any pending delalloc/csum calc on src, one way or
|
/* do any pending delalloc/csum calc on src, one way or
|
||||||
another, and lock file content */
|
another, and lock file content */
|
||||||
while (1) {
|
while (1) {
|
||||||
|
Reference in New Issue
Block a user