Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d525e8ab authored by Li Zefan's avatar Li Zefan Committed by Chris Mason
Browse files

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: default avatarLi Zefan <lizf@cn.fujitsu.com>
Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
parent d72c0842
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -2228,6 +2228,12 @@ static noinline long btrfs_ioctl_clone(struct file *file, unsigned long srcfd,
	    !IS_ALIGNED(destoff, bs))
		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
	   another, and lock file content */
	while (1) {