diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index 05f8df866e4c..89d5db7eb452 100644 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c @@ -3163,8 +3163,9 @@ static int btrfs_clone(struct inode *src, struct inode *inode, new_key.offset + datal, 1); if (ret) { - btrfs_abort_transaction(trans, root, - ret); + if (ret != -EINVAL) + btrfs_abort_transaction(trans, + root, ret); btrfs_end_transaction(trans, root); goto out; }