Changeset 6c89f20d in mainline for uspace/srv/vfs/vfs_ops.c
- Timestamp:
- 2008-06-03T15:07:16Z (18 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 21c5d41
- Parents:
- d51db07
- File:
-
- 1 edited
-
uspace/srv/vfs/vfs_ops.c (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/vfs/vfs_ops.c
rd51db07 r6c89f20d 445 445 446 446 int fd = IPC_GET_ARG1(*request); 447 447 448 448 /* Lookup the file structure corresponding to the file descriptor. */ 449 449 vfs_file_t *file = vfs_file_get(fd); … … 452 452 return; 453 453 } 454 454 455 455 /* 456 456 * Now we need to receive a call with client's … … 468 468 return; 469 469 } 470 470 471 471 /* 472 472 * Lock the open file structure so that no other thread can manipulate … … 474 474 */ 475 475 futex_down(&file->lock); 476 476 477 477 /* 478 478 * Lock the file's node so that no other client can read/write to it at … … 483 483 else 484 484 rwlock_write_lock(&file->node->contents_rwlock); 485 485 486 486 int fs_phone = vfs_grab_phone(file->node->fs_handle); 487 487 … … 501 501 */ 502 502 ipc_forward_fast(callid, fs_phone, 0, 0, 0, IPC_FF_ROUTE_FROM_ME); 503 503 504 504 vfs_release_phone(fs_phone); 505 505 506 506 /* Wait for reply from the FS server. */ 507 507 ipcarg_t rc; 508 508 async_wait_for(msg, &rc); 509 509 size_t bytes = IPC_GET_ARG1(answer); 510 510 511 511 /* Unlock the VFS node. */ 512 512 if (read) … … 518 518 rwlock_write_unlock(&file->node->contents_rwlock); 519 519 } 520 520 521 521 /* Update the position pointer and unlock the open file. */ 522 522 if (rc == EOK) 523 523 file->pos += bytes; 524 524 futex_up(&file->lock); 525 525 526 526 /* 527 527 * FS server's reply is the final result of the whole operation we
Note:
See TracChangeset
for help on using the changeset viewer.
