Rev 2787 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 2787 | Rev 3675 | ||
|---|---|---|---|
| Line 173... | Line 173... | ||
| 173 | node->fs_handle = result->triplet.fs_handle; |
173 | node->fs_handle = result->triplet.fs_handle; |
| 174 | node->dev_handle = result->triplet.dev_handle; |
174 | node->dev_handle = result->triplet.dev_handle; |
| 175 | node->index = result->triplet.index; |
175 | node->index = result->triplet.index; |
| 176 | node->size = result->size; |
176 | node->size = result->size; |
| 177 | node->lnkcnt = result->lnkcnt; |
177 | node->lnkcnt = result->lnkcnt; |
| - | 178 | node->type = result->type; |
|
| 178 | link_initialize(&node->nh_link); |
179 | link_initialize(&node->nh_link); |
| 179 | rwlock_initialize(&node->contents_rwlock); |
180 | rwlock_initialize(&node->contents_rwlock); |
| 180 | hash_table_insert(&nodes, key, &node->nh_link); |
181 | hash_table_insert(&nodes, key, &node->nh_link); |
| 181 | } else { |
182 | } else { |
| 182 | node = hash_table_get_instance(tmp, vfs_node_t, nh_link); |
183 | node = hash_table_get_instance(tmp, vfs_node_t, nh_link); |
| - | 184 | if (node->type == VFS_NODE_UNKNOWN && |
|
| - | 185 | result->type != VFS_NODE_UNKNOWN) { |
|
| - | 186 | /* Upgrade the node type. */ |
|
| - | 187 | node->type = result->type; |
|
| - | 188 | } |
|
| 183 | } |
189 | } |
| 184 | 190 | ||
| 185 | assert(node->size == result->size); |
191 | assert(node->size == result->size); |
| 186 | assert(node->lnkcnt == result->lnkcnt); |
192 | assert(node->lnkcnt == result->lnkcnt); |
| - | 193 | assert(node->type == result->type || result->type == VFS_NODE_UNKNOWN); |
|
| 187 | 194 | ||
| 188 | _vfs_node_addref(node); |
195 | _vfs_node_addref(node); |
| 189 | futex_up(&nodes_futex); |
196 | futex_up(&nodes_futex); |
| 190 | 197 | ||
| 191 | return node; |
198 | return node; |