Add TODOs regarding broken add/remove behavior
This commit is contained in:
parent
d8ea0a8a31
commit
3068366ed1
@ -1033,6 +1033,13 @@ Volume::_AddPackageNode(Directory* directory, PackageNode* packageNode,
|
|||||||
newNode = true;
|
newNode = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: The non-new part is broken for files. If a node is already known to
|
||||||
|
// the VFS, we can't just change the file content. The file might be an
|
||||||
|
// executable or library that is currently in use (i.e. mapped) and when
|
||||||
|
// just changing the file content we break things horribly. In fact we don't
|
||||||
|
// even do that correctly in UnpackingLeafNode::AddPackageNode() -- neither
|
||||||
|
// the former nor the new head package node is notified.
|
||||||
|
|
||||||
BReference<Node> nodeReference(node);
|
BReference<Node> nodeReference(node);
|
||||||
NodeWriteLocker nodeWriteLocker(node);
|
NodeWriteLocker nodeWriteLocker(node);
|
||||||
|
|
||||||
@ -1083,6 +1090,9 @@ Volume::_RemovePackageNode(Directory* directory, PackageNode* packageNode,
|
|||||||
BReference<Node> nodeReference(node);
|
BReference<Node> nodeReference(node);
|
||||||
NodeWriteLocker nodeWriteLocker(node);
|
NodeWriteLocker nodeWriteLocker(node);
|
||||||
|
|
||||||
|
// TODO: This is broken for files that are in use. Cf. _AddPackageNode() for
|
||||||
|
// details.
|
||||||
|
|
||||||
PackageNode* headPackageNode = unpackingNode->GetPackageNode();
|
PackageNode* headPackageNode = unpackingNode->GetPackageNode();
|
||||||
unpackingNode->RemovePackageNode(packageNode);
|
unpackingNode->RemovePackageNode(packageNode);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user