Subversion Repositories HelenOS

Rev

Rev 4366 | Rev 4409 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4366 Rev 4368
Line 987... Line 987...
987
        ipc_answer_0(rid, ENOMEM);
987
        ipc_answer_0(rid, ENOMEM);
988
        free(old);
988
        free(old);
989
        free(new);
989
        free(new);
990
        return;
990
        return;
991
    }
991
    }
-
 
992
    /* Determine the path to the parent of the node with the new name. */
-
 
993
    char *parentc = str_dup(newc);
-
 
994
    if (!parentc) {
-
 
995
        rwlock_write_unlock(&namespace_rwlock);
-
 
996
        ipc_answer_0(rid, rc);
-
 
997
        free(old);
-
 
998
        free(new);
-
 
999
        return;
-
 
1000
    }
-
 
1001
    char *lastsl = str_rchr(parentc + 1, L'/');
-
 
1002
    if (lastsl)
-
 
1003
        *lastsl = '\0';
-
 
1004
    else
-
 
1005
        parentc[1] = '\0';
992
    /* Lookup parent of the new file name. */
1006
    /* Lookup parent of the new file name. */
993
    rc = vfs_lookup_internal(newc, L_PARENT, &new_par_lr, NULL);
1007
    rc = vfs_lookup_internal(parentc, L_NONE, &new_par_lr, NULL);
-
 
1008
    free(parentc);  /* not needed anymore */
994
    if (rc != EOK) {
1009
    if (rc != EOK) {
995
        rwlock_write_unlock(&namespace_rwlock);
1010
        rwlock_write_unlock(&namespace_rwlock);
996
        ipc_answer_0(rid, rc);
1011
        ipc_answer_0(rid, rc);
997
        free(old);
1012
        free(old);
998
        free(new);
1013
        free(new);