btrfs-progs: return errors from btrfs_start_transaction

Now that all callers will catch errors, we can return them from the
function.

Signed-off-by: David Sterba <dsterba@suse.com>
master
David Sterba 2017-08-28 16:54:12 +02:00
parent 448999d84d
commit 6db6afd993
1 changed files with 14 additions and 3 deletions

View File

@ -22,6 +22,8 @@
#include "kerncompat.h"
#include "ctree.h"
#include "messages.h"
struct btrfs_trans_handle {
u64 transid;
u64 alloc_exclude_start;
@ -37,9 +39,18 @@ btrfs_start_transaction(struct btrfs_root *root, int num_blocks)
struct btrfs_fs_info *fs_info = root->fs_info;
struct btrfs_trans_handle *h = malloc(sizeof(*h));
BUG_ON(!h);
BUG_ON(root->commit_root);
BUG_ON(fs_info->running_transaction);
if (!h)
return ERR_PTR(-ENOMEM);
if (root->commit_root) {
error("commit_root aleady set when starting transaction");
kfree(h);
return ERR_PTR(-EINVAL);
}
if (fs_info->running_transaction) {
error("attempt to start transaction over already running one");
kfree(h);
return ERR_PTR(-EINVAL);
}
fs_info->running_transaction = h;
fs_info->generation++;
h->transid = fs_info->generation;