diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2022-11-23 20:14:55 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2022-11-30 12:30:50 -0500 |
commit | 1e3ba191958832ac00aa9dbe6efaeacefc1d652f (patch) | |
tree | 1b735bd3fd31b22ebf0b34f74023404ef4f54fd0 /fs/bcachefs/inode.c | |
parent | be2c3036abe438f156d0dc4540f8c355ca29aeb9 (diff) |
bcachefs: bch2_inode_opts_get()
This improves io_opts() and makes it a non-inline function - it's big
enough that it probably shouldn't be.
Also, bch_io_opts no longer needs fields for whether options are
defined, so we can slim it down a bit.
We'd like to stop passing around the full bch_io_opts, but that'll be
tricky because of bch2_rebalance_add_key().
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 a7a99a18572a..a63ff3df34c4 100644 --- a/fs/bcachefs/inode.c +++ b/fs/bcachefs/inode.c @@ -908,3 +908,14 @@ struct bch_opts bch2_inode_opts_to_opts(struct bch_inode_unpacked *inode) #undef x return ret; } + +void bch2_inode_opts_get(struct bch_io_opts *opts, struct bch_fs *c, + struct bch_inode_unpacked *inode) +{ +#define x(_name, _bits) opts->_name = inode_opt_get(c, inode, _name); + BCH_INODE_OPTS() +#undef x + + if (opts->nocow) + opts->compression = opts->background_compression = opts->data_checksum = opts->erasure_code = 0; +} |