Btrfs: reserve sufficient space for ioctl clone
Fix a crash/BUG_ON in the clone ioctl due to insufficient reservation. We need to reserve space for: - adjusting the old extent (possibly splitting it) - adding the new extent - updating the inode Signed-off-by: Sage Weil <sage@newdream.net> Signed-off-by: Chris Mason <chris.mason@oracle.com>
This commit is contained in:
parent
dde820fbf7
commit
b6f3409b21
1 changed files with 6 additions and 1 deletions
|
@ -2336,7 +2336,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;
|
||||
|
|
Loading…
Reference in a new issue