summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2011-09-21 01:22:55 +0400
committerLinus Torvalds <torvalds@linux-foundation.org>2011-09-21 01:22:55 +0400
commit43a964a7bfd15a2ed9e801c18dd327565edb4e62 (patch)
tree59d7e93ad2d0ca89acd95937cbe2ad96cc3786e9
parent80976804f501303a34a76e925119393722596dca (diff)
parent0a7a0519d1789f3a222849421dbe91b6bddb88f5 (diff)
downloadlinux-43a964a7bfd15a2ed9e801c18dd327565edb4e62.tar.xz
Merge branch 'for-linus' of git://github.com/chrismason/linux
* 'for-linus' of git://github.com/chrismason/linux: Btrfs: reserve sufficient space for ioctl clone
-rw-r--r--fs/btrfs/ioctl.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index d11fd28efa6a..538f65a79ec5 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -2328,7 +2328,12 @@ static noinline long btrfs_ioctl_clone(struct file *file, unsigned long srcfd,
else
new_key.offset = destoff;
- trans = btrfs_start_transaction(root, 1);
+ /*
+ * 1 - adjusting old extent (we may have to split it)
+ * 1 - add new extent
+ * 1 - inode update
+ */
+ trans = btrfs_start_transaction(root, 3);
if (IS_ERR(trans)) {
ret = PTR_ERR(trans);
goto out;