On Wed, Dec 18, 2024 at 10:37:24AM -0500, Liam R. Howlett wrote: > This is also correct. The maple tree is a b-tree variant that has > internal nodes. Right, I remembered that much :-) > > Also, I think vma_start_write() in that gather look is too early, you're > > not actually going to change the VMA yet -- with obvious exception of > > the split cases. > > The split needs to start the write on the vma to avoid anyone reading it > while it's being altered. __split_vma() does vma_start_write() itself, so that should be good already. > > That too should probably come after you've passes all the fail/unwind > > spots. > > Do you mean the split? No, I means the detach muck :-) > I'd like to move the split later as well.. > tracking that is a pain and may need an extra vma for when one vma is > split twice before removing the middle part. > > Actually, I think we need to allocate two (or at least one) vmas in this > case and just pass one through to unmap (written only to the mas_detach > tree?). It would be nice to find a way to NOT need to do that even.. I > had tried to use a vma on the stack years ago, which didn't work out. Urgh yeah, vma on stack sounds like utter pain :-)