diff options
-rw-r--r-- | fs/btrfs/ioctl.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index 63b4de1626d2..8bfb514b26c9 100644 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c | |||
@@ -2234,6 +2234,10 @@ static noinline long btrfs_ioctl_clone(struct file *file, unsigned long srcfd, | |||
2234 | goto out_unlock; | 2234 | goto out_unlock; |
2235 | } | 2235 | } |
2236 | 2236 | ||
2237 | /* truncate page cache pages from target inode range */ | ||
2238 | truncate_inode_pages_range(&inode->i_data, destoff, | ||
2239 | PAGE_CACHE_ALIGN(destoff + len) - 1); | ||
2240 | |||
2237 | /* do any pending delalloc/csum calc on src, one way or | 2241 | /* do any pending delalloc/csum calc on src, one way or |
2238 | another, and lock file content */ | 2242 | another, and lock file content */ |
2239 | while (1) { | 2243 | while (1) { |
@@ -2250,10 +2254,6 @@ static noinline long btrfs_ioctl_clone(struct file *file, unsigned long srcfd, | |||
2250 | btrfs_wait_ordered_range(src, off, len); | 2254 | btrfs_wait_ordered_range(src, off, len); |
2251 | } | 2255 | } |
2252 | 2256 | ||
2253 | /* truncate page cache pages from target inode range */ | ||
2254 | truncate_inode_pages_range(&inode->i_data, off, | ||
2255 | ALIGN(off + len, PAGE_CACHE_SIZE) - 1); | ||
2256 | |||
2257 | /* clone data */ | 2257 | /* clone data */ |
2258 | key.objectid = btrfs_ino(src); | 2258 | key.objectid = btrfs_ino(src); |
2259 | key.type = BTRFS_EXTENT_DATA_KEY; | 2259 | key.type = BTRFS_EXTENT_DATA_KEY; |