Changeset 4b995b92 in mainline for uspace/lib


Ignore:
Timestamp:
2010-01-24T13:02:17Z (16 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
203a090
Parents:
c1a8e5e6
Message:

Introduce the L_NOCROSS_LAST_MP lookup flag and treat the last mount point node
according to it in libfs_lookup().

Location:
uspace/lib
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/libc/include/ipc/vfs.h

    rc1a8e5e6 r4b995b92  
    148148#define L_OPEN  64
    149149
     150/**
     151 * L_NOCROSS_LAST_MP is used exclusively during the VFS_IN_UNMOUNT operation. It
     152 * tells the lookup routine not to cross the last mount point in the lookup
     153 * path.
     154 */
     155#define L_NOCROSS_LAST_MP       128
     156
    150157#endif
    151158
  • uspace/lib/libfs/libfs.c

    rc1a8e5e6 r4b995b92  
    304304                on_error(rc, goto out_with_answer);
    305305               
    306                 if ((tmp) && (tmp->mp_data.mp_active)) {
     306                /*
     307                 * If the matching component is a mount point, there are two
     308                 * legitimate semantics of the lookup operation. The first is
     309                 * the commonly used one in which the lookup crosses each mount
     310                 * point into the mounted file system. The second semantics is
     311                 * used mostly during unmount() and differs from the first one
     312                 * only in that the last mount point in the looked up path,
     313                 * which is also its last component, is not crossed.
     314                 */
     315
     316                if ((tmp) && (tmp->mp_data.mp_active) &&
     317                    (!(lflag & L_NOCROSS_LAST_MP) || (next <= last))) {
    307318                        if (next > last)
    308319                                next = last = first;
Note: See TracChangeset for help on using the changeset viewer.