transaction handles everywhere
[btrfs-progs-unstable.git] / inode-item.c
blob7caeb11e875620cb2b0a32d5fe755d56abb8899b
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include "kerncompat.h"
4 #include "radix-tree.h"
5 #include "ctree.h"
6 #include "disk-io.h"
7 #include "transaction.h"
9 int btrfs_insert_inode(struct btrfs_trans_handle *trans, struct btrfs_root
10 *root, u64 objectid, struct btrfs_inode_item
11 *inode_item)
13 struct btrfs_path path;
14 struct btrfs_key key;
15 int ret;
16 key.objectid = objectid;
17 key.flags = 0;
18 btrfs_set_key_type(&key, BTRFS_INODE_ITEM_KEY);
19 key.offset = 0;
21 btrfs_init_path(&path);
22 ret = btrfs_insert_item(trans, root, &key, inode_item,
23 sizeof(*inode_item));
24 btrfs_release_path(root, &path);
25 return ret;
28 int btrfs_lookup_inode(struct btrfs_trans_handle *trans, struct btrfs_root
29 *root, struct btrfs_path *path, u64 objectid, int mod)
31 struct btrfs_key key;
32 int ins_len = mod < 0 ? -1 : 0;
33 int cow = mod != 0;
35 key.objectid = objectid;
36 key.flags = 0;
37 btrfs_set_key_type(&key, BTRFS_INODE_ITEM_KEY);
38 key.offset = 0;
39 return btrfs_search_slot(trans, root, &key, path, ins_len, cow);