diff options
-rw-r--r-- | fs/bcachefs/inode.c | 11 | ||||
-rw-r--r-- | fs/bcachefs/inode.h | 2 | ||||
-rw-r--r-- | fs/bcachefs/opts.c | 11 | ||||
-rw-r--r-- | fs/bcachefs/opts.h | 1 | ||||
-rw-r--r-- | fs/bcachefs/xattr.c | 2 |
5 files changed, 14 insertions, 13 deletions
diff --git a/fs/bcachefs/inode.c b/fs/bcachefs/inode.c index f026e2f70dcd..827a0b04b00f 100644 --- a/fs/bcachefs/inode.c +++ b/fs/bcachefs/inode.c @@ -763,3 +763,14 @@ void bch2_inode_nlink_dec(struct btree_trans *trans, struct bch_inode_unpacked * else bi->bi_flags |= BCH_INODE_UNLINKED; } + +struct bch_opts bch2_inode_opts_to_opts(struct bch_inode_unpacked *inode) +{ + struct bch_opts ret = { 0 }; +#define x(_name, _bits) \ + if (inode->bi_##_name) \ + opt_set(ret, _name, inode->bi_##_name - 1); + BCH_INODE_OPTS() +#undef x + return ret; +} diff --git a/fs/bcachefs/inode.h b/fs/bcachefs/inode.h index 9ea0d575a183..27744f78ae96 100644 --- a/fs/bcachefs/inode.h +++ b/fs/bcachefs/inode.h @@ -187,4 +187,6 @@ static inline void bch2_inode_nlink_set(struct bch_inode_unpacked *bi, int bch2_inode_nlink_inc(struct bch_inode_unpacked *); void bch2_inode_nlink_dec(struct btree_trans *, struct bch_inode_unpacked *); +struct bch_opts bch2_inode_opts_to_opts(struct bch_inode_unpacked *); + #endif /* _BCACHEFS_INODE_H */ diff --git a/fs/bcachefs/opts.c b/fs/bcachefs/opts.c index 98568f21d6d0..9c49d543b062 100644 --- a/fs/bcachefs/opts.c +++ b/fs/bcachefs/opts.c @@ -540,17 +540,6 @@ struct bch_io_opts bch2_opts_to_inode_opts(struct bch_opts src) return ret; } -struct bch_opts bch2_inode_opts_to_opts(struct bch_io_opts src) -{ - struct bch_opts ret = { 0 }; -#define x(_name, _bits) \ - if (opt_defined(src, _name)) \ - opt_set(ret, _name, src._name); - BCH_INODE_OPTS() -#undef x - return ret; -} - void bch2_io_opts_apply(struct bch_io_opts *dst, struct bch_io_opts src) { #define x(_name, _bits) \ diff --git a/fs/bcachefs/opts.h b/fs/bcachefs/opts.h index 6e2bd6e01f8c..a32a7ab73bd5 100644 --- a/fs/bcachefs/opts.h +++ b/fs/bcachefs/opts.h @@ -513,7 +513,6 @@ struct bch_io_opts { }; struct bch_io_opts bch2_opts_to_inode_opts(struct bch_opts); -struct bch_opts bch2_inode_opts_to_opts(struct bch_io_opts); void bch2_io_opts_apply(struct bch_io_opts *, struct bch_io_opts); bool bch2_opt_is_inode_opt(enum bch_opt_id); diff --git a/fs/bcachefs/xattr.c b/fs/bcachefs/xattr.c index 2b9fb4941e9f..bd118f6ea08b 100644 --- a/fs/bcachefs/xattr.c +++ b/fs/bcachefs/xattr.c @@ -444,7 +444,7 @@ static int __bch2_xattr_bcachefs_get(const struct xattr_handler *handler, struct bch_inode_info *inode = to_bch_ei(vinode); struct bch_fs *c = inode->v.i_sb->s_fs_info; struct bch_opts opts = - bch2_inode_opts_to_opts(bch2_inode_opts_get(&inode->ei_inode)); + bch2_inode_opts_to_opts(&inode->ei_inode); const struct bch_option *opt; int id, inode_opt_id; struct printbuf out = PRINTBUF; |