diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2024-02-01 07:35:28 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2024-03-10 15:34:09 -0400 |
commit | 69c8e6ce022fd87abb9c8dbbdcfd312d6513b055 (patch) | |
tree | 5153f97e1f65d2c42252ae84e6367673723eb28a /fs/bcachefs/inode.c | |
parent | 29223b5a555e90844fda741088831d06bb52b882 (diff) | |
download | linux-69c8e6ce022fd87abb9c8dbbdcfd312d6513b055.tar.gz linux-69c8e6ce022fd87abb9c8dbbdcfd312d6513b055.tar.bz2 linux-69c8e6ce022fd87abb9c8dbbdcfd312d6513b055.zip |
bcachefs: move fsck_write_inode() to inode.c
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/inode.c')
-rw-r--r-- | fs/bcachefs/inode.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/fs/bcachefs/inode.c b/fs/bcachefs/inode.c index b07ab98e460e..ee298a47425f 100644 --- a/fs/bcachefs/inode.c +++ b/fs/bcachefs/inode.c @@ -384,6 +384,34 @@ int bch2_inode_write_flags(struct btree_trans *trans, return bch2_trans_update(trans, iter, &inode_p->inode.k_i, flags); } +int __bch2_fsck_write_inode(struct btree_trans *trans, + struct bch_inode_unpacked *inode, + u32 snapshot) +{ + struct bkey_inode_buf *inode_p = + bch2_trans_kmalloc(trans, sizeof(*inode_p)); + + if (IS_ERR(inode_p)) + return PTR_ERR(inode_p); + + bch2_inode_pack(inode_p, inode); + inode_p->inode.k.p.snapshot = snapshot; + + return bch2_btree_insert_nonextent(trans, BTREE_ID_inodes, + &inode_p->inode.k_i, + BTREE_UPDATE_INTERNAL_SNAPSHOT_NODE); +} + +int bch2_fsck_write_inode(struct btree_trans *trans, + struct bch_inode_unpacked *inode, + u32 snapshot) +{ + int ret = commit_do(trans, NULL, NULL, BCH_TRANS_COMMIT_no_enospc, + __bch2_fsck_write_inode(trans, inode, snapshot)); + bch_err_fn(trans->c, ret); + return ret; +} + struct bkey_i *bch2_inode_to_v3(struct btree_trans *trans, struct bkey_i *k) { struct bch_inode_unpacked u; |