22226: Update parent pointers when splicing a subtree.
authorTom Clegg <tom@curii.com>
Wed, 23 Oct 2024 15:15:01 +0000 (11:15 -0400)
committerTom Clegg <tom@curii.com>
Wed, 23 Oct 2024 15:15:01 +0000 (11:15 -0400)
commit42b4e107c38ef0db09709e22181f68c8e0f6bbeb
treecb61fba2635a8979d2c208ff1736c2188a4d9688
parentee21f342b1ab0152fbe5030dc39ed1fc5cc2ec1b
22226: Update parent pointers when splicing a subtree.

When splicing a dirnode-rooted subtree S onto an existing dirnode D, D
itself remains in the filesystem tree, but D's children are replaced
with S's children.

Before this fix, S's immediate children were not getting their parent
pointers updated to point to D.  A subsequent Splice operation on D's
child would follow the child's parent pointer to S instead of D, try
to use S's FS(), which is nil, and panic.

Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom@curii.com>
sdk/go/arvados/fs_collection.go