]>
Commit | Line | Data |
---|---|---|
2e635a27 | 1 | #include <linux/module.h> |
1e1d2701 CM |
2 | #include "ctree.h" |
3 | #include "disk-io.h" | |
e089f05c | 4 | #include "transaction.h" |
1e1d2701 | 5 | |
e089f05c CM |
6 | int btrfs_insert_inode(struct btrfs_trans_handle *trans, struct btrfs_root |
7 | *root, u64 objectid, struct btrfs_inode_item | |
8 | *inode_item) | |
1e1d2701 | 9 | { |
5caf2a00 | 10 | struct btrfs_path *path; |
1e1d2701 CM |
11 | struct btrfs_key key; |
12 | int ret; | |
13 | key.objectid = objectid; | |
14 | key.flags = 0; | |
15 | btrfs_set_key_type(&key, BTRFS_INODE_ITEM_KEY); | |
16 | key.offset = 0; | |
17 | ||
5caf2a00 CM |
18 | path = btrfs_alloc_path(); |
19 | BUG_ON(!path); | |
20 | btrfs_init_path(path); | |
e089f05c CM |
21 | ret = btrfs_insert_item(trans, root, &key, inode_item, |
22 | sizeof(*inode_item)); | |
5caf2a00 CM |
23 | btrfs_release_path(root, path); |
24 | btrfs_free_path(path); | |
1e1d2701 CM |
25 | return ret; |
26 | } | |
27 | ||
e089f05c CM |
28 | int 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 | } |