Changes in uspace/srv/vfs/vfs_ops.c [6a4e972:ae75e2e3] in mainline
- File:
-
- 1 edited
-
uspace/srv/vfs/vfs_ops.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/vfs/vfs_ops.c
r6a4e972 rae75e2e3 92 92 } 93 93 94 rc = vfs_lookup_internal(mp, L_ MP, &mp_res, NULL);94 rc = vfs_lookup_internal(mp, L_DIRECTORY, &mp_res, NULL); 95 95 if (rc != EOK) { 96 96 /* The lookup failed for some reason. */ … … 459 459 * Lookup the mounted root and instantiate it. 460 460 */ 461 rc = vfs_lookup_internal(mp, L_ ROOT, &mr_res, NULL);461 rc = vfs_lookup_internal(mp, L_NONE, &mr_res, NULL); 462 462 if (rc != EOK) { 463 463 fibril_rwlock_write_unlock(&namespace_rwlock); … … 521 521 */ 522 522 523 rc = vfs_lookup_internal(mp, L_MP, &mp_res, NULL); 523 /* 524 * The L_NOCROSS_LAST_MP flag is essential if we really want to 525 * lookup the mount point and not the mounted root. 526 */ 527 rc = vfs_lookup_internal(mp, L_NOCROSS_LAST_MP, &mp_res, NULL); 524 528 free(mp); 525 529 if (rc != EOK) { … … 538 542 539 543 phone = vfs_grab_phone(mp_node->fs_handle); 540 rc = async_req_2_0(phone, VFS_OUT_UNMOUNT, mp_node-> dev_handle,541 mp_node-> index);544 rc = async_req_2_0(phone, VFS_OUT_UNMOUNT, mp_node->fs_handle, 545 mp_node->dev_handle); 542 546 vfs_release_phone(phone); 543 547 if (rc != EOK) { … … 591 595 /* 592 596 * Make sure that we are called with exactly one of L_FILE and 593 * L_DIRECTORY. Make sure that the user does not pass L_OPEN ,594 * L_ ROOT or L_MP.597 * L_DIRECTORY. Make sure that the user does not pass L_OPEN or 598 * L_NOCROSS_LAST_MP. 595 599 */ 596 600 if (((lflag & (L_FILE | L_DIRECTORY)) == 0) || 597 601 ((lflag & (L_FILE | L_DIRECTORY)) == (L_FILE | L_DIRECTORY)) || 598 (lflag & (L_OPEN | L_ROOT | L_MP))) {602 (lflag & L_OPEN) || (lflag & L_NOCROSS_LAST_MP)) { 599 603 ipc_answer_0(rid, EINVAL); 600 604 return;
Note:
See TracChangeset
for help on using the changeset viewer.
