bcachefs: Fix for shared paths in write buffer flush
authorKent Overstreet <kent.overstreet@linux.dev>
Sun, 26 Feb 2023 20:48:39 +0000 (15:48 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:09:54 +0000 (17:09 -0400)
commit747ded6ddfe88eb9644ee0512c061e46fe2fb09d
tree49e3a7fa17faa7c8505192f07d932eed1f79c17a
parent39a1ea129a6906a0d6127036222bdb68ec01a277
bcachefs: Fix for shared paths in write buffer flush

It's possible for bch2_write_buffer_flush_one() to end up with a shared
path, if called from a context that already has a btree iterator
pointing to a key being flushed. We have to be careful when that
happens, since we can't clone a path that holds write locks.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/btree_write_buffer.c