162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci#ifndef BTRFS_DIR_ITEM_H
462306a36Sopenharmony_ci#define BTRFS_DIR_ITEM_H
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciint btrfs_check_dir_item_collision(struct btrfs_root *root, u64 dir,
762306a36Sopenharmony_ci			  const struct fscrypt_str *name);
862306a36Sopenharmony_ciint btrfs_insert_dir_item(struct btrfs_trans_handle *trans,
962306a36Sopenharmony_ci			  const struct fscrypt_str *name, struct btrfs_inode *dir,
1062306a36Sopenharmony_ci			  struct btrfs_key *location, u8 type, u64 index);
1162306a36Sopenharmony_cistruct btrfs_dir_item *btrfs_lookup_dir_item(struct btrfs_trans_handle *trans,
1262306a36Sopenharmony_ci					     struct btrfs_root *root,
1362306a36Sopenharmony_ci					     struct btrfs_path *path, u64 dir,
1462306a36Sopenharmony_ci					     const struct fscrypt_str *name, int mod);
1562306a36Sopenharmony_cistruct btrfs_dir_item *btrfs_lookup_dir_index_item(
1662306a36Sopenharmony_ci			struct btrfs_trans_handle *trans,
1762306a36Sopenharmony_ci			struct btrfs_root *root,
1862306a36Sopenharmony_ci			struct btrfs_path *path, u64 dir,
1962306a36Sopenharmony_ci			u64 index, const struct fscrypt_str *name, int mod);
2062306a36Sopenharmony_cistruct btrfs_dir_item *btrfs_search_dir_index_item(struct btrfs_root *root,
2162306a36Sopenharmony_ci			    struct btrfs_path *path, u64 dirid,
2262306a36Sopenharmony_ci			    const struct fscrypt_str *name);
2362306a36Sopenharmony_ciint btrfs_delete_one_dir_name(struct btrfs_trans_handle *trans,
2462306a36Sopenharmony_ci			      struct btrfs_root *root,
2562306a36Sopenharmony_ci			      struct btrfs_path *path,
2662306a36Sopenharmony_ci			      struct btrfs_dir_item *di);
2762306a36Sopenharmony_ciint btrfs_insert_xattr_item(struct btrfs_trans_handle *trans,
2862306a36Sopenharmony_ci			    struct btrfs_root *root,
2962306a36Sopenharmony_ci			    struct btrfs_path *path, u64 objectid,
3062306a36Sopenharmony_ci			    const char *name, u16 name_len,
3162306a36Sopenharmony_ci			    const void *data, u16 data_len);
3262306a36Sopenharmony_cistruct btrfs_dir_item *btrfs_lookup_xattr(struct btrfs_trans_handle *trans,
3362306a36Sopenharmony_ci					  struct btrfs_root *root,
3462306a36Sopenharmony_ci					  struct btrfs_path *path, u64 dir,
3562306a36Sopenharmony_ci					  const char *name, u16 name_len,
3662306a36Sopenharmony_ci					  int mod);
3762306a36Sopenharmony_cistruct btrfs_dir_item *btrfs_match_dir_item_name(struct btrfs_fs_info *fs_info,
3862306a36Sopenharmony_ci						 struct btrfs_path *path,
3962306a36Sopenharmony_ci						 const char *name,
4062306a36Sopenharmony_ci						 int name_len);
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci#endif
43