mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
bcachefs: Add bch_io_opts fields for indicating whether the opts came from the inode
This is going to be used in the bch_extent_rebalance improvements, which propagate io_path options into the extent (important for rebalance, which needs something present in the extent for transactionally tagging them in the rebalance_work btree, and also for indirect extents). By tracking in bch_extent_rebalance whether the option came from the filesystem or the inode we can correctly handle options being changed on indirect extents. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
3000855cab
commit
7a7c43a0c1
2 changed files with 10 additions and 1 deletions
|
@ -1142,7 +1142,13 @@ struct bch_opts bch2_inode_opts_to_opts(struct bch_inode_unpacked *inode)
|
||||||
void bch2_inode_opts_get(struct bch_io_opts *opts, struct bch_fs *c,
|
void bch2_inode_opts_get(struct bch_io_opts *opts, struct bch_fs *c,
|
||||||
struct bch_inode_unpacked *inode)
|
struct bch_inode_unpacked *inode)
|
||||||
{
|
{
|
||||||
#define x(_name, _bits) opts->_name = inode_opt_get(c, inode, _name);
|
#define x(_name, _bits) \
|
||||||
|
if ((inode)->bi_##_name) { \
|
||||||
|
opts->_name = inode->bi_##_name - 1; \
|
||||||
|
opts->_name##_from_inode = true; \
|
||||||
|
} else { \
|
||||||
|
opts->_name = c->opts._name; \
|
||||||
|
}
|
||||||
BCH_INODE_OPTS()
|
BCH_INODE_OPTS()
|
||||||
#undef x
|
#undef x
|
||||||
|
|
||||||
|
|
|
@ -624,6 +624,9 @@ struct bch_io_opts {
|
||||||
#define x(_name, _bits) u##_bits _name;
|
#define x(_name, _bits) u##_bits _name;
|
||||||
BCH_INODE_OPTS()
|
BCH_INODE_OPTS()
|
||||||
#undef x
|
#undef x
|
||||||
|
#define x(_name, _bits) u64 _name##_from_inode:1;
|
||||||
|
BCH_INODE_OPTS()
|
||||||
|
#undef x
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline void bch2_io_opts_fixups(struct bch_io_opts *opts)
|
static inline void bch2_io_opts_fixups(struct bch_io_opts *opts)
|
||||||
|
|
Loading…
Add table
Reference in a new issue