Subversion Repositories HelenOS

Rev

Rev 4419 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4419 Rev 4537
Line 37... Line 37...
37
 
37
 
38
#include "vfs.h"
38
#include "vfs.h"
39
#include <stdlib.h>
39
#include <stdlib.h>
40
#include <string.h>
40
#include <string.h>
41
#include <futex.h>
41
#include <futex.h>
42
#include <rwlock.h>
42
#include <fibril_sync.h>
43
#include <libadt/hash_table.h>
43
#include <adt/hash_table.h>
44
#include <assert.h>
44
#include <assert.h>
45
#include <async.h>
45
#include <async.h>
46
#include <errno.h>
46
#include <errno.h>
47
 
47
 
48
/** Futex protecting the VFS node hash table. */
48
/** Futex protecting the VFS node hash table. */
Line 175... Line 175...
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
        node->type = result->type;
179
        link_initialize(&node->nh_link);
179
        link_initialize(&node->nh_link);
180
        rwlock_initialize(&node->contents_rwlock);
180
        fibril_rwlock_initialize(&node->contents_rwlock);
181
        hash_table_insert(&nodes, key, &node->nh_link);
181
        hash_table_insert(&nodes, key, &node->nh_link);
182
    } else {
182
    } else {
183
        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 &&
184
        if (node->type == VFS_NODE_UNKNOWN &&
185
            result->type != VFS_NODE_UNKNOWN) {
185
            result->type != VFS_NODE_UNKNOWN) {
186
            /* Upgrade the node type. */
186
            /* Upgrade the node type. */
187
            node->type = result->type;
187
            node->type = result->type;
188
        }
188
        }
Line 231... Line 231...
231
{
231
{
232
}
232
}
233
 
233
 
234
/**
234
/**
235
 * @}
235
 * @}
236
 */
236
 */