summaryrefslogtreecommitdiff
path: root/fs/bcachefs/inode.h
blob: e5a36ca24bb0ecd8b5f485e60ef53ab14ef3052d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#ifndef _BCACHE_INODE_H
#define _BCACHE_INODE_H

extern const struct btree_keys_ops bch_inode_ops;
extern const struct bkey_ops bch_bkey_inode_ops;

ssize_t bch_inode_status(char *, size_t, const struct bkey *);

int bch_inode_create(struct cache_set *, struct bkey_i *, u64, u64, u64 *);
int bch_inode_truncate(struct cache_set *, u64, u64,
		       struct extent_insert_hook *, u64 *);
int bch_inode_rm(struct cache_set *, u64);

int bch_inode_insert_at(struct btree_iter *, const struct bch_inode *,
			const struct bch_inode_i_generation *,
			const struct bch_inode_long_times *,
			u64 *, gfp_t);

int bch_inode_update(struct cache_set *, struct bkey_i *, u64 *);

int bch_inode_find_by_inum(struct cache_set *, u64, struct bch_inode *);
int bch_cached_dev_inode_find_by_uuid(struct cache_set *, uuid_le *,
				      struct bkey_i_inode_blockdev *);

struct inode_opt_fields {
	const struct bch_inode_i_generation	*i_generation;
	const struct bch_inode_long_times	*long_times;
};

struct inode_opt_fields bch_inode_opt_fields_get(const struct bch_inode *);

#endif