Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/fs/btrfs/dir-item.h
26278 views
1
/* SPDX-License-Identifier: GPL-2.0 */
2
3
#ifndef BTRFS_DIR_ITEM_H
4
#define BTRFS_DIR_ITEM_H
5
6
#include <linux/types.h>
7
#include <linux/crc32c.h>
8
9
struct fscrypt_str;
10
struct btrfs_fs_info;
11
struct btrfs_key;
12
struct btrfs_path;
13
struct btrfs_inode;
14
struct btrfs_root;
15
struct btrfs_trans_handle;
16
17
int btrfs_check_dir_item_collision(struct btrfs_root *root, u64 dir_ino,
18
const struct fscrypt_str *name);
19
int btrfs_insert_dir_item(struct btrfs_trans_handle *trans,
20
const struct fscrypt_str *name, struct btrfs_inode *dir,
21
const struct btrfs_key *location, u8 type, u64 index);
22
struct btrfs_dir_item *btrfs_lookup_dir_item(struct btrfs_trans_handle *trans,
23
struct btrfs_root *root,
24
struct btrfs_path *path, u64 dir,
25
const struct fscrypt_str *name, int mod);
26
struct btrfs_dir_item *btrfs_lookup_dir_index_item(
27
struct btrfs_trans_handle *trans,
28
struct btrfs_root *root,
29
struct btrfs_path *path, u64 dir,
30
u64 index, const struct fscrypt_str *name, int mod);
31
struct btrfs_dir_item *btrfs_search_dir_index_item(struct btrfs_root *root,
32
struct btrfs_path *path, u64 dirid,
33
const struct fscrypt_str *name);
34
int btrfs_delete_one_dir_name(struct btrfs_trans_handle *trans,
35
struct btrfs_root *root,
36
struct btrfs_path *path,
37
const struct btrfs_dir_item *di);
38
int btrfs_insert_xattr_item(struct btrfs_trans_handle *trans,
39
struct btrfs_root *root,
40
struct btrfs_path *path, u64 objectid,
41
const char *name, u16 name_len,
42
const void *data, u16 data_len);
43
struct btrfs_dir_item *btrfs_lookup_xattr(struct btrfs_trans_handle *trans,
44
struct btrfs_root *root,
45
struct btrfs_path *path, u64 dir,
46
const char *name, u16 name_len,
47
int mod);
48
struct btrfs_dir_item *btrfs_match_dir_item_name(const struct btrfs_path *path,
49
const char *name,
50
int name_len);
51
52
static inline u64 btrfs_name_hash(const char *name, int len)
53
{
54
return crc32c((u32)~1, name, len);
55
}
56
57
#endif
58
59