Btrfs: more inode indexed directory work
[linux-2.6-block.git] / fs / btrfs / dir-item.c
index 2a87e23ac9c90a3668ab3095d27138a7594dd0cf..62d0c0916a73c2e5f229a4381e96ef028ae55009 100644 (file)
@@ -80,6 +80,24 @@ int btrfs_lookup_dir_item(struct btrfs_trans_handle *trans, struct btrfs_root
        return ret;
 }
 
+int btrfs_lookup_dir_index_item(struct btrfs_trans_handle *trans,
+                               struct btrfs_root *root,
+                               struct btrfs_path *path, u64 dir,
+                               u64 objectid, int mod)
+{
+       int ret;
+       struct btrfs_key key;
+       int ins_len = mod < 0 ? -1 : 0;
+       int cow = mod != 0;
+
+       key.objectid = dir;
+       key.flags = 0;
+       btrfs_set_key_type(&key, BTRFS_DIR_INDEX_KEY);
+       key.offset = objectid;
+       ret = btrfs_search_slot(trans, root, &key, path, ins_len, cow);
+       return ret;
+}
+
 int btrfs_match_dir_item_name(struct btrfs_root *root,
                              struct btrfs_path *path,
                              const char *name, int name_len)