Btrfs: transaction handles everywhere
[linux-2.6-block.git] / fs / btrfs / inode-item.c
CommitLineData
1e1d2701
CM
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"
e089f05c 7#include "transaction.h"
1e1d2701 8
e089f05c
CM
9int btrfs_insert_inode(struct btrfs_trans_handle *trans, struct btrfs_root
10 *root, u64 objectid, struct btrfs_inode_item
11 *inode_item)
1e1d2701
CM
12{
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;
20
21 btrfs_init_path(&path);
e089f05c
CM
22 ret = btrfs_insert_item(trans, root, &key, inode_item,
23 sizeof(*inode_item));
1e1d2701
CM
24 btrfs_release_path(root, &path);
25 return ret;
26}
27
e089f05c
CM
28int btrfs_lookup_inode(struct btrfs_trans_handle *trans, struct btrfs_root
29 *root, struct btrfs_path *path, u64 objectid, int mod)
1e1d2701
CM
30{
31 struct btrfs_key key;
32 int ins_len = mod < 0 ? -1 : 0;
33 int cow = mod != 0;
34
35 key.objectid = objectid;
36 key.flags = 0;
37 btrfs_set_key_type(&key, BTRFS_INODE_ITEM_KEY);
38 key.offset = 0;
e089f05c 39 return btrfs_search_slot(trans, root, &key, path, ins_len, cow);
1e1d2701 40}