1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _BCACHEFS_FS_COMMON_H
3#define _BCACHEFS_FS_COMMON_H
4
5struct posix_acl;
6
7#define BCH_CREATE_TMPFILE		(1U << 0)
8#define BCH_CREATE_SUBVOL		(1U << 1)
9#define BCH_CREATE_SNAPSHOT		(1U << 2)
10#define BCH_CREATE_SNAPSHOT_RO		(1U << 3)
11
12int bch2_create_trans(struct btree_trans *, subvol_inum,
13		      struct bch_inode_unpacked *,
14		      struct bch_inode_unpacked *,
15		      const struct qstr *,
16		      uid_t, gid_t, umode_t, dev_t,
17		      struct posix_acl *,
18		      struct posix_acl *,
19		      subvol_inum, unsigned);
20
21int bch2_link_trans(struct btree_trans *,
22		    subvol_inum, struct bch_inode_unpacked *,
23		    subvol_inum, struct bch_inode_unpacked *,
24		    const struct qstr *);
25
26int bch2_unlink_trans(struct btree_trans *, subvol_inum,
27		      struct bch_inode_unpacked *,
28		      struct bch_inode_unpacked *,
29		      const struct qstr *, bool);
30
31int bch2_rename_trans(struct btree_trans *,
32		      subvol_inum, struct bch_inode_unpacked *,
33		      subvol_inum, struct bch_inode_unpacked *,
34		      struct bch_inode_unpacked *,
35		      struct bch_inode_unpacked *,
36		      const struct qstr *,
37		      const struct qstr *,
38		      enum bch_rename_mode);
39
40bool bch2_reinherit_attrs(struct bch_inode_unpacked *,
41			  struct bch_inode_unpacked *);
42
43#endif /* _BCACHEFS_FS_COMMON_H */
44