diff options
author | Chris Mason <chris.mason@oracle.com> | 2007-04-05 16:38:44 +0200 |
---|---|---|
committer | David Woodhouse <dwmw2@hera.kernel.org> | 2007-04-05 16:38:44 +0200 |
commit | 5f26f772e5c4e833ffcb0599f54deda466d2a3e5 (patch) | |
tree | 2ef0183b42e2bd51feff52c2e6f97570514907b9 /fs/btrfs/dir-item.c | |
parent | Btrfs: add dir inode index (diff) | |
download | linux-5f26f772e5c4e833ffcb0599f54deda466d2a3e5.tar.xz linux-5f26f772e5c4e833ffcb0599f54deda466d2a3e5.zip |
Btrfs: more inode indexed directory work
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/dir-item.c')
-rw-r--r-- | fs/btrfs/dir-item.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/fs/btrfs/dir-item.c b/fs/btrfs/dir-item.c index 2a87e23ac9c9..62d0c0916a73 100644 --- a/fs/btrfs/dir-item.c +++ b/fs/btrfs/dir-item.c @@ -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) |