Subversion Repositories HelenOS

Rev

Rev 4668 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4668 Rev 4688
Line 304... Line 304...
304
        free(mp);
304
        free(mp);
305
        return;
305
        return;
306
    }
306
    }
307
 
307
 
308
    /* Check the offered options size. */
308
    /* Check the offered options size. */
309
    if (size < 0 || size > MAX_MNTOPTS_LEN) {
309
    if (size > MAX_MNTOPTS_LEN) {
310
        ipc_answer_0(callid, EINVAL);
310
        ipc_answer_0(callid, EINVAL);
311
        ipc_answer_0(rid, EINVAL);
311
        ipc_answer_0(rid, EINVAL);
312
        free(mp);
312
        free(mp);
313
        return;
313
        return;
314
    }
314
    }
Line 446... Line 446...
446
    int lflag = IPC_GET_ARG1(*request);
446
    int lflag = IPC_GET_ARG1(*request);
447
    int oflag = IPC_GET_ARG2(*request);
447
    int oflag = IPC_GET_ARG2(*request);
448
    int mode = IPC_GET_ARG3(*request);
448
    int mode = IPC_GET_ARG3(*request);
449
    size_t len;
449
    size_t len;
450
   
450
 
-
 
451
    /* Ignore mode for now. */
-
 
452
    (void) mode;
-
 
453
   
451
    /*
454
    /*
452
     * Make sure that we are called with exactly one of L_FILE and
455
     * Make sure that we are called with exactly one of L_FILE and
453
     * L_DIRECTORY. Make sure that the user does not pass L_OPEN.
456
     * L_DIRECTORY. Make sure that the user does not pass L_OPEN.
454
     */
457
     */
455
    if (((lflag & (L_FILE | L_DIRECTORY)) == 0) ||
458
    if (((lflag & (L_FILE | L_DIRECTORY)) == 0) ||
Line 1051... Line 1054...
1051
        free(path);
1054
        free(path);
1052
        return;
1055
        return;
1053
    }
1056
    }
1054
    path[len] = '\0';
1057
    path[len] = '\0';
1055
   
1058
 
-
 
1059
    /* Ignore mode for now. */
-
 
1060
    (void) mode;
-
 
1061
   
1056
    fibril_rwlock_write_lock(&namespace_rwlock);
1062
    fibril_rwlock_write_lock(&namespace_rwlock);
1057
    int lflag = L_DIRECTORY | L_CREATE | L_EXCLUSIVE;
1063
    int lflag = L_DIRECTORY | L_CREATE | L_EXCLUSIVE;
1058
    rc = vfs_lookup_internal(path, lflag, NULL, NULL);
1064
    rc = vfs_lookup_internal(path, lflag, NULL, NULL);
1059
    fibril_rwlock_write_unlock(&namespace_rwlock);
1065
    fibril_rwlock_write_unlock(&namespace_rwlock);
1060
    free(path);
1066
    free(path);