mirror of
https://github.com/versity/scoutfs.git
synced 2026-01-07 04:26:29 +00:00
Log merge completions were spliced in one server commit. It's possible to get enough completion work pending that it all can't be completed in one server commit. Operations fail with ENOSPC and because these changes can't be unwound cleanly the server asserts. This allows the completion splicing to break the work up into multiple commits. Processing completions in multiple commits means that request creation can observe the merge status in states that weren't possible before. Splicing is careful to maintain an elevated nr_complete count while the client can't get requests because the tree is rebalancing. Signed-off-by: Zach Brown <zab@versity.com>