diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2019-06-30 16:28:01 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2020-05-06 17:14:16 -0400 |
commit | ea5715a73506eb929e43b66eb3b87c94e2b44ab4 (patch) | |
tree | a145b47f47c831f20c6ee694995a5f9b7e2e6e31 /fs/bcachefs/acl.h | |
parent | 5f6131b81dfa624673447c41cfb69c151086b802 (diff) |
Merge with 1f431b384d bcachefs: Refactor trans_(get|update)_key
Diffstat (limited to 'fs/bcachefs/acl.h')
-rw-r--r-- | fs/bcachefs/acl.h | 59 |
1 files changed, 26 insertions, 33 deletions
diff --git a/fs/bcachefs/acl.h b/fs/bcachefs/acl.h index b721330e2837..cb62d502a7ff 100644 --- a/fs/bcachefs/acl.h +++ b/fs/bcachefs/acl.h @@ -1,6 +1,12 @@ +/* SPDX-License-Identifier: GPL-2.0 */ #ifndef _BCACHEFS_ACL_H #define _BCACHEFS_ACL_H +struct bch_inode_unpacked; +struct bch_hash_info; +struct bch_inode_info; +struct posix_acl; + #ifdef CONFIG_BCACHEFS_POSIX_ACL #define BCH_ACL_VERSION 0x0001 @@ -20,43 +26,30 @@ typedef struct { __le32 a_version; } bch_acl_header; -static inline size_t bch2_acl_size(int count) -{ - if (count <= 4) { - return sizeof(bch_acl_header) + - count * sizeof(bch_acl_entry_short); - } else { - return sizeof(bch_acl_header) + - 4 * sizeof(bch_acl_entry_short) + - (count - 4) * sizeof(bch_acl_entry); - } -} - -static inline int bch2_acl_count(size_t size) -{ - ssize_t s; - - size -= sizeof(bch_acl_header); - s = size - 4 * sizeof(bch_acl_entry_short); - if (s < 0) { - if (size % sizeof(bch_acl_entry_short)) - return -1; - return size / sizeof(bch_acl_entry_short); - } else { - if (s % sizeof(bch_acl_entry)) - return -1; - return s / sizeof(bch_acl_entry) + 4; - } -} - -struct posix_acl; +struct posix_acl *bch2_get_acl(struct inode *, int); -extern struct posix_acl *bch2_get_acl(struct inode *, int); -extern int bch2_set_acl(struct inode *, struct posix_acl *, int); +int bch2_set_acl_trans(struct btree_trans *, + struct bch_inode_unpacked *, + const struct bch_hash_info *, + struct posix_acl *, int); +int bch2_set_acl(struct inode *, struct posix_acl *, int); +int bch2_acl_chmod(struct btree_trans *, struct bch_inode_info *, + umode_t, struct posix_acl **); #else -static inline int bch2_set_acl(struct inode *inode, struct posix_acl *acl, int type) +static inline int bch2_set_acl_trans(struct btree_trans *trans, + struct bch_inode_unpacked *inode_u, + const struct bch_hash_info *hash_info, + struct posix_acl *acl, int type) +{ + return 0; +} + +static inline int bch2_acl_chmod(struct btree_trans *trans, + struct bch_inode_info *inode, + umode_t mode, + struct posix_acl **new_acl) { return 0; } |