diff options
| author | Kent Overstreet <kent.overstreet@linux.dev> | 2024-11-07 21:48:33 -0500 |
|---|---|---|
| committer | Kent Overstreet <kent.overstreet@linux.dev> | 2024-11-07 23:31:11 -0500 |
| commit | ca43f73cd1720e3b0b9c49deec1a13c89c0ca1e8 (patch) | |
| tree | f0e13ae59746442fb545ccd3af6e4b025a008c43 /fs/bcachefs/btree_write_buffer.h | |
| parent | bcachefs: Fix UAF in __promote_alloc() error path (diff) | |
| download | linux-ca43f73cd1720e3b0b9c49deec1a13c89c0ca1e8.tar.gz linux-ca43f73cd1720e3b0b9c49deec1a13c89c0ca1e8.zip | |
bcachefs: bch2_btree_write_buffer_flush_going_ro()
The write buffer needs to be specifically flushed when going RO: keys in
the journal that haven't yet been moved to the write buffer don't have a
journal pin yet.
This fixes numerous syzbot bugs, all with symptoms of still doing writes
after we've got RO.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/btree_write_buffer.h')
| -rw-r--r-- | fs/bcachefs/btree_write_buffer.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/bcachefs/btree_write_buffer.h b/fs/bcachefs/btree_write_buffer.h index 725e79654216..d535cea28bde 100644 --- a/fs/bcachefs/btree_write_buffer.h +++ b/fs/bcachefs/btree_write_buffer.h @@ -21,6 +21,7 @@ static inline bool bch2_btree_write_buffer_must_wait(struct bch_fs *c) struct btree_trans; int bch2_btree_write_buffer_flush_sync(struct btree_trans *); +bool bch2_btree_write_buffer_flush_going_ro(struct bch_fs *); int bch2_btree_write_buffer_flush_nocheck_rw(struct btree_trans *); int bch2_btree_write_buffer_tryflush(struct btree_trans *); |
