diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2023-11-02 22:28:15 +0300 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-11-05 05:19:13 +0300 |
commit | 4bd156c4b44ef34bd57d20a0a48aad829e1c54c1 (patch) | |
tree | b6707ee5f7aacabd1a17faead1ae6ef4c1136c5b /fs/bcachefs/inode.h | |
parent | 7cb2a7895d94db2979c29e4a20f33b5557c702d5 (diff) | |
download | linux-4bd156c4b44ef34bd57d20a0a48aad829e1c54c1.tar.xz |
bcachefs: Fix bch2_delete_dead_inodes()
- the fsck_err() check for the filesystem being clean was incorrect,
causing us to always fail to delete unlinked inodes
- if a snapshot had been taken, the unlinked inode needs to be
propagated to snapshot leaves so the unlink can happen there - fixed.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/inode.h')
-rw-r--r-- | fs/bcachefs/inode.h | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/fs/bcachefs/inode.h b/fs/bcachefs/inode.h index 74c62e6c16cc..b09fda452d6f 100644 --- a/fs/bcachefs/inode.h +++ b/fs/bcachefs/inode.h @@ -3,6 +3,7 @@ #define _BCACHEFS_INODE_H #include "bkey.h" +#include "bkey_methods.h" #include "opts.h" enum bkey_invalid_flags; @@ -101,8 +102,16 @@ void bch2_inode_unpacked_to_text(struct printbuf *, struct bch_inode_unpacked *) int bch2_inode_peek(struct btree_trans *, struct btree_iter *, struct bch_inode_unpacked *, subvol_inum, unsigned); -int bch2_inode_write(struct btree_trans *, struct btree_iter *, - struct bch_inode_unpacked *); + +int bch2_inode_write_flags(struct btree_trans *, struct btree_iter *, + struct bch_inode_unpacked *, enum btree_update_flags); + +static inline int bch2_inode_write(struct btree_trans *trans, + struct btree_iter *iter, + struct bch_inode_unpacked *inode) +{ + return bch2_inode_write_flags(trans, iter, inode, 0); +} void bch2_inode_init_early(struct bch_fs *, struct bch_inode_unpacked *); |