diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-20 20:05:31 +0200 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-31 17:18:38 +0100 |
commit | 55c11a159d3ca4ca7f9d5c1275d0768474b12195 (patch) | |
tree | 414983a187d9ebe96bcc39648d080ced7f0f2fc4 | |
parent | bcachefs: move: move_stats refactoring (diff) | |
download | linux-55c11a159d3ca4ca7f9d5c1275d0768474b12195.tar.xz linux-55c11a159d3ca4ca7f9d5c1275d0768474b12195.zip |
bcachefs: bch2_inum_opts_get()
New helper for new rebalance code
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r-- | fs/bcachefs/inode.c | 12 | ||||
-rw-r--r-- | fs/bcachefs/inode.h | 1 |
2 files changed, 13 insertions, 0 deletions
diff --git a/fs/bcachefs/inode.c b/fs/bcachefs/inode.c index a3921c397ea2..23fcd442c514 100644 --- a/fs/bcachefs/inode.c +++ b/fs/bcachefs/inode.c @@ -981,6 +981,18 @@ void bch2_inode_opts_get(struct bch_io_opts *opts, struct bch_fs *c, opts->compression = opts->background_compression = opts->data_checksum = opts->erasure_code = 0; } +int bch2_inum_opts_get(struct btree_trans *trans, subvol_inum inum, struct bch_io_opts *opts) +{ + struct bch_inode_unpacked inode; + int ret = lockrestart_do(trans, bch2_inode_find_by_inum_trans(trans, inum, &inode)); + + if (ret) + return ret; + + bch2_inode_opts_get(opts, trans->c, &inode); + return 0; +} + int bch2_inode_rm_snapshot(struct btree_trans *trans, u64 inum, u32 snapshot) { struct bch_fs *c = trans->c; diff --git a/fs/bcachefs/inode.h b/fs/bcachefs/inode.h index a7464e1b6960..2781e3281583 100644 --- a/fs/bcachefs/inode.h +++ b/fs/bcachefs/inode.h @@ -200,6 +200,7 @@ void bch2_inode_nlink_dec(struct btree_trans *, struct bch_inode_unpacked *); struct bch_opts bch2_inode_opts_to_opts(struct bch_inode_unpacked *); void bch2_inode_opts_get(struct bch_io_opts *, struct bch_fs *, struct bch_inode_unpacked *); +int bch2_inum_opts_get(struct btree_trans*, subvol_inum, struct bch_io_opts *); int bch2_inode_rm_snapshot(struct btree_trans *, u64, u32); int bch2_delete_dead_inodes(struct bch_fs *); |