Changeset 67f63c4 in mainline
- Timestamp:
- 2008-01-08T20:47:39Z (17 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 861e7d1
- Parents:
- 7fff5eab
- Location:
- uspace
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/libc/include/rwlock.h
r7fff5eab r67f63c4 49 49 50 50 #define rwlock_initialize(rwlock) futex_initialize((rwlock), 1) 51 #define rwlock_read er_lock(rwlock) futex_down((rwlock))52 #define rwlock_write r_lock(rwlock) futex_down((rwlock))53 #define rwlock_read er_unlock(rwlock) futex_up((rwlock))54 #define rwlock_write r_unlock(rwlock) futex_up((rwlock))51 #define rwlock_read_lock(rwlock) futex_down((rwlock)) 52 #define rwlock_write_lock(rwlock) futex_down((rwlock)) 53 #define rwlock_read_unlock(rwlock) futex_up((rwlock)) 54 #define rwlock_write_unlock(rwlock) futex_up((rwlock)) 55 55 56 56 #endif -
uspace/srv/vfs/vfs_mount.c
r7fff5eab r67f63c4 186 186 * We already have the root FS. 187 187 */ 188 rwlock_write r_lock(&namespace_rwlock);188 rwlock_write_lock(&namespace_rwlock); 189 189 rc = vfs_lookup_internal(buf, size, &mp, &mpsz, NULL); 190 190 if (rc != EOK) { … … 192 192 * The lookup failed for some reason. 193 193 */ 194 rwlock_write r_unlock(&namespace_rwlock);194 rwlock_write_unlock(&namespace_rwlock); 195 195 futex_up(&rootfs_futex); 196 196 vfs_node_put(mr_node); /* failed -> drop reference */ … … 201 201 mp_node = vfs_node_get(&mp, mpsz); 202 202 if (!mp_node) { 203 rwlock_write r_unlock(&namespace_rwlock);203 rwlock_write_unlock(&namespace_rwlock); 204 204 futex_up(&rootfs_futex); 205 205 vfs_node_put(mr_node); /* failed -> drop reference */ … … 213 213 * This prevents the mount point from being deleted. 214 214 */ 215 rwlock_write r_unlock(&namespace_rwlock);215 rwlock_write_unlock(&namespace_rwlock); 216 216 } else { 217 217 /* -
uspace/srv/vfs/vfs_open.c
r7fff5eab r67f63c4 94 94 * triplet. 95 95 */ 96 rwlock_read er_lock(&namespace_rwlock);96 rwlock_read_lock(&namespace_rwlock); 97 97 98 98 /* … … 103 103 rc = vfs_lookup_internal(path, len, &triplet, &size, NULL); 104 104 if (rc) { 105 rwlock_read er_unlock(&namespace_rwlock);105 rwlock_read_unlock(&namespace_rwlock); 106 106 ipc_answer_0(rid, rc); 107 107 free(path); … … 115 115 116 116 vfs_node_t *node = vfs_node_get(&triplet, size); 117 rwlock_read er_unlock(&namespace_rwlock);117 rwlock_read_unlock(&namespace_rwlock); 118 118 119 119 /* -
uspace/srv/vfs/vfs_rdwr.c
r7fff5eab r67f63c4 94 94 */ 95 95 if (read) 96 rwlock_read er_lock(&file->node->contents_rwlock);96 rwlock_read_lock(&file->node->contents_rwlock); 97 97 else 98 rwlock_write r_lock(&file->node->contents_rwlock);98 rwlock_write_lock(&file->node->contents_rwlock); 99 99 100 100 int fs_phone = vfs_grab_phone(file->node->fs_handle); … … 129 129 */ 130 130 if (read) 131 rwlock_read er_unlock(&file->node->contents_rwlock);131 rwlock_read_unlock(&file->node->contents_rwlock); 132 132 else { 133 133 /* Update the cached version of node's size. */ 134 134 file->node->size = IPC_GET_ARG2(answer); 135 rwlock_write r_unlock(&file->node->contents_rwlock);135 rwlock_write_unlock(&file->node->contents_rwlock); 136 136 } 137 137 … … 197 197 } 198 198 if (whence == SEEK_END) { 199 rwlock_read er_lock(&file->node->contents_rwlock);199 rwlock_read_lock(&file->node->contents_rwlock); 200 200 size_t size = file->node->size; 201 rwlock_read er_unlock(&file->node->contents_rwlock);201 rwlock_read_unlock(&file->node->contents_rwlock); 202 202 if (size + off < size) { 203 203 futex_up(&file->lock);
Note:
See TracChangeset
for help on using the changeset viewer.