mirror of
https://github.com/torvalds/linux.git
synced 2026-06-05 13:06:59 +02:00
bcachefs: Fix journal_buf_realloc()
It used to be safe to reallocate a buf that the write path owns without holding the journal lock, but now this can trigger an assertion in journal_seq_to_buf(). Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
07a1006ae8
commit
c859430b17
|
|
@ -1051,9 +1051,13 @@ static void journal_buf_realloc(struct journal *j, struct journal_buf *buf)
|
|||
return;
|
||||
|
||||
memcpy(new_buf, buf->data, buf->buf_size);
|
||||
kvpfree(buf->data, buf->buf_size);
|
||||
buf->data = new_buf;
|
||||
buf->buf_size = new_size;
|
||||
|
||||
spin_lock(&j->lock);
|
||||
swap(buf->data, new_buf);
|
||||
swap(buf->buf_size, new_size);
|
||||
spin_unlock(&j->lock);
|
||||
|
||||
kvpfree(new_buf, new_size);
|
||||
}
|
||||
|
||||
static inline struct journal_buf *journal_last_unwritten_buf(struct journal *j)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user