diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2022-11-23 20:28:15 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-22 17:09:46 -0400 |
commit | abb936fb9f2ab4a447a266477d65e50d476277a5 (patch) | |
tree | faa4c9a4d7ba0f2da2215b76f74fc98d8e0cb5df /fs/bcachefs/inode.c | |
parent | 98638ffa1d914e780a527c0bd92323f0b7307f09 (diff) | |
download | lwn-abb936fb9f2ab4a447a266477d65e50d476277a5.tar.gz lwn-abb936fb9f2ab4a447a266477d65e50d476277a5.zip |
bcachefs: Improve bch2_inode_opts_to_opts()
It turns out the *_defined entries of bch_io_opts are only used in one
place - in the xattr get path - and there we immediately convert to a
bch_opts struct, which also has the *_defined entries.
This patch changes bch2_inode_opts_to_opts() to go directly from
bch_inode_unpacked to bch_opts, which is a minor simplification and will
also let us slim down struct bch_io_opts in another patch.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/inode.c')
-rw-r--r-- | fs/bcachefs/inode.c | 11 |
1 files changed, 11 insertions, 0 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; +} |