diff options
author | Chris Mason <chris.mason@oracle.com> | 2007-03-15 19:03:33 -0400 |
---|---|---|
committer | David Woodhouse <dwmw2@hera.kernel.org> | 2007-03-15 19:03:33 -0400 |
commit | 1e1d27017c5986c1ea81181506042cf9cba3f6ea (patch) | |
tree | aad9439d33f45543d7b041c3609ab180c2283526 /fs/btrfs/inode-item.c | |
parent | 1d4f6404de26df49eb8452f8fdf7672b59f407fc (diff) |
Btrfs: add inode item
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/inode-item.c')
-rw-r--r-- | fs/btrfs/inode-item.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/fs/btrfs/inode-item.c b/fs/btrfs/inode-item.c new file mode 100644 index 000000000000..4908f9afdf86 --- /dev/null +++ b/fs/btrfs/inode-item.c | |||
@@ -0,0 +1,37 @@ | |||
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 | |||
8 | int btrfs_insert_inode(struct btrfs_root *root, u64 objectid, | ||
9 | struct btrfs_inode_item *inode_item) | ||
10 | { | ||
11 | struct btrfs_path path; | ||
12 | struct btrfs_key key; | ||
13 | int ret; | ||
14 | key.objectid = objectid; | ||
15 | key.flags = 0; | ||
16 | btrfs_set_key_type(&key, BTRFS_INODE_ITEM_KEY); | ||
17 | key.offset = 0; | ||
18 | |||
19 | btrfs_init_path(&path); | ||
20 | ret = btrfs_insert_item(root, &key, inode_item, sizeof(*inode_item)); | ||
21 | btrfs_release_path(root, &path); | ||
22 | return ret; | ||
23 | } | ||
24 | |||
25 | int btrfs_lookup_inode(struct btrfs_root *root, struct btrfs_path *path, | ||
26 | u64 objectid, int mod) | ||
27 | { | ||
28 | struct btrfs_key key; | ||
29 | int ins_len = mod < 0 ? -1 : 0; | ||
30 | int cow = mod != 0; | ||
31 | |||
32 | key.objectid = objectid; | ||
33 | key.flags = 0; | ||
34 | btrfs_set_key_type(&key, BTRFS_INODE_ITEM_KEY); | ||
35 | key.offset = 0; | ||
36 | return btrfs_search_slot(root, &key, path, ins_len, cow); | ||
37 | } | ||