Lines Matching defs:node

181 	// delete the root node
255 // create node map
279 // create local node ID map
287 // create remote node ID map
295 // get a local node ID for our root node
300 // create the root node
307 // add the root node to the node map
360 "allocate the node ID array!\n");
366 ShareNode* node = it.Next().value;
367 ids[count++] = node->GetID();
376 if (Node* node = fNodes->Get(ids[i])) {
377 if (node->IsKnownToVFS()) {
378 // node is known to VFS; we need to use the GetVNode(),
382 // node is not known to VFS; just remove and delete it
383 fNodes->Remove(node->GetID());
384 _RemoveLocalNodeID(node->GetID());
385 if (node != fRootNode)
386 delete node;
396 Node* node;
397 if (GetVNode(ids[i], &node) == B_OK) {
398 PRINT(" removing node %" B_PRIdINO "\n", ids[i]);
460 ShareNode* node = NULL;
463 node = _GetNodeByLocalID(vnid);
464 if (node) {
465 node->SetKnownToVFS(true);
466 *_node = node;
468 // add a volume reference for the node
499 // add the node
501 error = _LoadNode(reply->nodeInfo, &node);
504 node->SetKnownToVFS(true);
505 *_node = node;
507 // add a volume reference for the node
515 ShareVolume::WriteVNode(Node* node, char reenter)
518 node->SetKnownToVFS(false);
520 // surrender the node's volume reference
529 ShareVolume::RemoveVNode(Node* node, char reenter)
532 node->SetKnownToVFS(false);
533 fNodes->Remove(node->GetID());
534 _RemoveLocalNodeID(node->GetID());
535 if (node != fRootNode)
536 delete node;
538 // surrender the node's volume reference
561 ShareNode* node = dynamic_cast<ShareNode*>(_node);
564 *st = node->GetNodeInfo().st;
566 st->st_ino = node->GetID();
577 ShareNode* node = dynamic_cast<ShareNode*>(_node);
588 request.nodeID = node->GetRemoteID();
597 // update the node
704 ShareNode* node = dynamic_cast<ShareNode*>(_node);
706 // TODO: Allow opening the root node?
722 request.nodeID = node->GetRemoteID();
732 // update the node
884 // obsolete data), depending on when the node monitoring update arrives.
900 ShareNode* node = dynamic_cast<ShareNode*>(_node);
902 if (!node || node->GetVolume() != this)
913 if (IsVNodeRemoved(node->GetID()) > 0)
920 request.nodeID = node->GetRemoteID();
990 ShareNode* node = dynamic_cast<ShareNode*>(_node);
999 request.nodeID = node->GetRemoteID();
1117 ShareDir* node = dynamic_cast<ShareDir*>(_node);
1118 if (!node)
1121 // TODO: Allow opening the root node?
1134 if (node->IsComplete()) {
1140 iterator->SetDirectory(node);
1159 request.nodeID = node->GetRemoteID();
1169 PRINT("OpenDir() failed: node: %" B_PRIdINO ", remote: (%" B_PRIdDEV
1170 ", %" B_PRIdINO ")\n", node->GetID(), node->GetRemoteID().volumeID,
1171 node->GetRemoteID().nodeID);
1175 // update the node
1275 // fix the node ID
1324 // we always resolve "." and ".." of the root node
1334 Node* node;
1335 return GetVNode(*vnid, &node);
1348 Node* node;
1349 return GetVNode(*vnid, &node);
1387 // no symlink or we shall not resolve it: get the node
1400 ShareNode* node = dynamic_cast<ShareNode*>(_node);
1402 // TODO: Allow opening the root node?
1414 if (!node->GetAttrDir() || !node->GetAttrDir()->IsUpToDate()) {
1418 request.nodeID = node->GetRemoteID();
1444 error = _LoadAttrDir(node, reply->attrDirInfo);
1453 iterator->SetAttrDir(node->GetAttrDir());
1456 status_t error = _AddAttrDirIterator(node, iterator);
1480 ShareNode* node = dynamic_cast<ShareNode*>(_node);
1489 _RemoveAttrDirIterator(node, cookie->iterator);
1611 ShareNode* node = dynamic_cast<ShareNode*>(_node);
1626 ShareAttrDir* attrDir = node->GetAttrDir();
1654 request.nodeID = node->GetRemoteID();
1734 ShareNode* node = dynamic_cast<ShareNode*>(_node);
1751 if (ShareAttrDir* attrDir = node->GetAttrDir()) {
1764 request.nodeID = node->GetRemoteID();
1788 ShareAttrDir* attrDir = node->GetAttrDir();
1802 ShareNode* node = dynamic_cast<ShareNode*>(_node);
1815 if (ShareAttrDir* attrDir = node->GetAttrDir()) {
1824 request.nodeID = node->GetRemoteID();
1838 ShareAttrDir* attrDir = node->GetAttrDir();
1850 ShareNode* node = dynamic_cast<ShareNode*>(_node);
1863 if (ShareAttrDir* attrDir = node->GetAttrDir()) {
1872 request.nodeID = node->GetRemoteID();
1887 ShareAttrDir* attrDir = node->GetAttrDir();
1899 ShareNode* node = dynamic_cast<ShareNode*>(_node);
1908 ShareAttrDir* attrDir = node->GetAttrDir();
1923 request.nodeID = node->GetRemoteID();
1961 ShareNode* node;
1962 error = _LoadNode(dirInfo, &node);
1965 ShareDir* directory = dynamic_cast<ShareDir*>(node);
2133 // load the node/entry
2168 // translate the node IDs
2177 B_PRIdINO ")), node: %" B_PRIdINO " (remote: (%" B_PRIdDEV ", %"
2208 // translate the node IDs
2215 // TODO: We don't enter a node ID mapping here, which might cause
2218 // respective node ID should definately be known at this point.
2219 // If an entry is removed and the node monitoring event comes
2224 // node monitoring events (and the server processes them in a
2227 // A node monitoring event that will always get lost, is when the
2234 // A possible solution would be to never remove node ID mappings.
2235 // We would only need to take care that the cached node info is
2238 // also enter a yet unknown ID into the node ID map here. The only
2268 // translate the node IDs
2297 // translate the node IDs
2321 // translate the node IDs
2372 PRINT("ShareVolume(%" B_PRId32 "): added node ID mapping: local: %"
2443 // check, if the node is already known
2444 ShareNode* node = _GetNodeByRemoteID(nodeInfo.GetID());
2445 if (node) {
2446 node->Update(nodeInfo);
2448 // don't load the node when already unmounting
2452 // get a local node ID
2458 // create a new node
2460 node = new(std::nothrow) ShareDir(this, localID, &nodeInfo);
2462 node = new(std::nothrow) ShareNode(this, localID, &nodeInfo);
2463 if (!node) {
2469 error = fNodes->Put(node->GetID(), node);
2472 delete node;
2475 PRINT("ShareVolume: added node: %" B_PRIdINO ": remote: (%" B_PRIdDEV
2476 ", %" B_PRIdINO "), localID: %" B_PRIdINO "\n", node->GetID(),
2477 node->GetRemoteID().volumeID,
2478 node->GetRemoteID().nodeID, localID);
2482 *_node = node;
2495 ShareNode* node = _GetNodeByRemoteID(nodeInfo.GetID());
2496 if (node) {
2497 node->Update(nodeInfo);
2548 // The node the existing entry refers to is not the node it
2575 // load the node
2576 ShareNode* node;
2577 status_t error = _LoadNode(entryInfo.nodeInfo, &node);
2581 // if the directory or the node are marked remove, we don't create the
2584 || IsVNodeRemoved(node->GetID()) > 0) {
2589 entry = new(std::nothrow) ShareDirEntry(directory, name, node);
2606 // add the entry to the directory and the node
2649 ShareVolume::_LoadAttrDir(ShareNode* node, const AttrDirInfo& attrDirInfo)
2651 if (!node || !attrDirInfo.isValid)
2659 ShareAttrDir* attrDir = node->GetAttrDir();
2666 fAttrDirIterators->Get(node->GetID()));
2680 node->SetAttrDir(attrDir);
2692 // get the node
2693 ShareNode* node = _GetNodeByRemoteID(remoteID);
2694 if (!node)
2697 if (!attrDirInfo.isValid || _LoadAttrDir(node, attrDirInfo) != B_OK) {
2700 if (ShareAttrDir* attrDir = node->GetAttrDir())
2709 ShareVolume::_AddAttrDirIterator(ShareNode* node,
2712 if (!node || !iterator)
2719 = fAttrDirIterators->Get(node->GetID());
2721 // no list for the node yet: create one
2727 status_t error = fAttrDirIterators->Put(node->GetID(), iteratorList);
2742 ShareVolume::_RemoveAttrDirIterator(ShareNode* node,
2745 if (!node || !iterator)
2752 = fAttrDirIterators->Get(node->GetID());
2755 "found: node: %" B_PRIdINO "\n", node->GetID());
2764 fAttrDirIterators->Remove(node->GetID());
2775 ShareNode* node = _GetNodeByRemoteID(remoteID);
2776 if (!node)
2779 // if the node still has referring entries, we do nothing
2780 if (node->GetActualReferringEntry())
2783 // if the node is a directory, we remove its entries first
2784 if (ShareDir* dir = dynamic_cast<ShareDir*>(node)) {
2789 // remove all entries still referring to the node
2790 while (ShareDirEntry* entry = node->GetFirstReferringEntry())
2793 ino_t localID = node->GetID();
2795 // Remove the node ID in all cases -- even, if the node is still
2801 if (node->IsKnownToVFS()) {
2811 delete node;
3093 // update the root node and enter its ID
3107 PRINT("ShareVolume::_MountShare(): root node: local: %" B_PRIdINO
3113 // node monitoring events. There a race condition: We might already
3114 // have missed events for the root node.