Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/vfs/vfs_ops.c

    rffa2c8ef r4fe94c66  
    3737
    3838#include "vfs.h"
     39#include <ipc/ipc.h>
    3940#include <macros.h>
    4041#include <stdint.h>
     
    9091                        /* Trying to mount root FS over root FS */
    9192                        fibril_rwlock_write_unlock(&namespace_rwlock);
    92                         async_answer_0(rid, EBUSY);
     93                        ipc_answer_0(rid, EBUSY);
    9394                        return;
    9495                }
     
    9899                        /* The lookup failed for some reason. */
    99100                        fibril_rwlock_write_unlock(&namespace_rwlock);
    100                         async_answer_0(rid, rc);
     101                        ipc_answer_0(rid, rc);
    101102                        return;
    102103                }
     
    105106                if (!mp_node) {
    106107                        fibril_rwlock_write_unlock(&namespace_rwlock);
    107                         async_answer_0(rid, ENOMEM);
     108                        ipc_answer_0(rid, ENOMEM);
    108109                        return;
    109110                }
     
    133134                                vfs_release_phone(fs_handle, phone);
    134135                                fibril_rwlock_write_unlock(&namespace_rwlock);
    135                                 async_answer_0(rid, rc);
     136                                ipc_answer_0(rid, rc);
    136137                                return;
    137138                        }
     
    141142                        if (rc != EOK) {
    142143                                fibril_rwlock_write_unlock(&namespace_rwlock);
    143                                 async_answer_0(rid, rc);
     144                                ipc_answer_0(rid, rc);
    144145                                return;
    145146                        }
     
    164165                       
    165166                        fibril_rwlock_write_unlock(&namespace_rwlock);
    166                         async_answer_0(rid, rc);
     167                        ipc_answer_0(rid, rc);
    167168                        return;
    168169                } else {
     
    172173                         */
    173174                        fibril_rwlock_write_unlock(&namespace_rwlock);
    174                         async_answer_0(rid, ENOENT);
     175                        ipc_answer_0(rid, ENOENT);
    175176                        return;
    176177                }
     
    201202                if (mp_node)
    202203                        vfs_node_put(mp_node);
    203                 async_answer_0(rid, rc);
     204                ipc_answer_0(rid, rc);
    204205                fibril_rwlock_write_unlock(&namespace_rwlock);
    205206                return;
     
    217218                        vfs_node_put(mp_node);
    218219                fibril_rwlock_write_unlock(&namespace_rwlock);
    219                 async_answer_0(rid, rc);
     220                ipc_answer_0(rid, rc);
    220221                return;
    221222        }
     
    244245        }
    245246
    246         async_answer_0(rid, rc);
     247        ipc_answer_0(rid, rc);
    247248        fibril_rwlock_write_unlock(&namespace_rwlock);
    248249}
     
    274275            0, NULL);
    275276        if (rc != EOK) {
    276                 async_answer_0(rid, rc);
     277                ipc_answer_0(rid, rc);
    277278                return;
    278279        }
     
    284285        if (rc != EOK) {
    285286                free(mp);
    286                 async_answer_0(rid, rc);
     287                ipc_answer_0(rid, rc);
    287288                return;
    288289        }
     
    298299                free(mp);
    299300                free(opts);
    300                 async_answer_0(rid, rc);
     301                ipc_answer_0(rid, rc);
    301302                return;
    302303        }
     
    309310        ipc_callid_t callid = async_get_call(&data);
    310311        if (IPC_GET_IMETHOD(data) != IPC_M_PING) {
    311                 async_answer_0(callid, ENOTSUP);
    312                 async_answer_0(rid, ENOTSUP);
     312                ipc_answer_0(callid, ENOTSUP);
     313                ipc_answer_0(rid, ENOTSUP);
    313314                free(mp);
    314315                free(opts);
     
    332333               
    333334                fibril_mutex_unlock(&fs_head_lock);
    334                 async_answer_0(callid, ENOENT);
    335                 async_answer_0(rid, ENOENT);
     335                ipc_answer_0(callid, ENOENT);
     336                ipc_answer_0(rid, ENOENT);
    336337                free(mp);
    337338                free(fs_name);
     
    342343       
    343344        /* Acknowledge that we know fs_name. */
    344         async_answer_0(callid, EOK);
     345        ipc_answer_0(callid, EOK);
    345346       
    346347        /* Do the mount */
     
    366367            0, NULL);
    367368        if (rc != EOK)
    368                 async_answer_0(rid, rc);
     369                ipc_answer_0(rid, rc);
    369370
    370371        /*
     
    385386                fibril_rwlock_write_unlock(&namespace_rwlock);
    386387                free(mp);
    387                 async_answer_0(rid, rc);
     388                ipc_answer_0(rid, rc);
    388389                return;
    389390        }
     
    392393                fibril_rwlock_write_unlock(&namespace_rwlock);
    393394                free(mp);
    394                 async_answer_0(rid, ENOMEM);
     395                ipc_answer_0(rid, ENOMEM);
    395396                return;
    396397        }
     
    408409                vfs_node_put(mr_node);
    409410                free(mp);
    410                 async_answer_0(rid, EBUSY);
     411                ipc_answer_0(rid, EBUSY);
    411412                return;
    412413        }
     
    429430                        fibril_rwlock_write_unlock(&namespace_rwlock);
    430431                        vfs_node_put(mr_node);
    431                         async_answer_0(rid, rc);
     432                        ipc_answer_0(rid, rc);
    432433                        return;
    433434                }
     
    448449                        fibril_rwlock_write_unlock(&namespace_rwlock);
    449450                        vfs_node_put(mr_node);
    450                         async_answer_0(rid, rc);
     451                        ipc_answer_0(rid, rc);
    451452                        return;
    452453                }
     
    455456                        fibril_rwlock_write_unlock(&namespace_rwlock);
    456457                        vfs_node_put(mr_node);
    457                         async_answer_0(rid, ENOMEM);
     458                        ipc_answer_0(rid, ENOMEM);
    458459                        return;
    459460                }
     
    467468                        vfs_node_put(mp_node);
    468469                        vfs_node_put(mr_node);
    469                         async_answer_0(rid, rc);
     470                        ipc_answer_0(rid, rc);
    470471                        return;
    471472                }
     
    485486
    486487        fibril_rwlock_write_unlock(&namespace_rwlock);
    487         async_answer_0(rid, EOK);
     488        ipc_answer_0(rid, EOK);
    488489}
    489490
     
    513514            ((lflag & (L_FILE | L_DIRECTORY)) == (L_FILE | L_DIRECTORY)) ||
    514515            (lflag & (L_OPEN | L_ROOT | L_MP))) {
    515                 async_answer_0(rid, EINVAL);
     516                ipc_answer_0(rid, EINVAL);
    516517                return;
    517518        }
     
    525526        int rc = async_data_write_accept((void **) &path, true, 0, 0, 0, NULL);
    526527        if (rc != EOK) {
    527                 async_answer_0(rid, rc);
     528                ipc_answer_0(rid, rc);
    528529                return;
    529530        }
     
    547548                else
    548549                        fibril_rwlock_read_unlock(&namespace_rwlock);
    549                 async_answer_0(rid, rc);
     550                ipc_answer_0(rid, rc);
    550551                free(path);
    551552                return;
     
    570571                                fibril_rwlock_write_unlock(&node->contents_rwlock);
    571572                                vfs_node_put(node);
    572                                 async_answer_0(rid, rc);
     573                                ipc_answer_0(rid, rc);
    573574                                return;
    574575                        }
     
    585586        if (fd < 0) {
    586587                vfs_node_put(node);
    587                 async_answer_0(rid, fd);
     588                ipc_answer_0(rid, fd);
    588589                return;
    589590        }
     
    606607       
    607608        /* Success! Return the new file descriptor to the client. */
    608         async_answer_1(rid, EOK, fd);
     609        ipc_answer_1(rid, EOK, fd);
    609610}
    610611
     
    628629        if (rc != EOK) {
    629630                fibril_rwlock_read_unlock(&namespace_rwlock);
    630                 async_answer_0(rid, rc);
     631                ipc_answer_0(rid, rc);
    631632                return;
    632633        }
     
    644645                                fibril_rwlock_write_unlock(&node->contents_rwlock);
    645646                                vfs_node_put(node);
    646                                 async_answer_0(rid, rc);
     647                                ipc_answer_0(rid, rc);
    647648                                return;
    648649                        }
     
    659660        if (fd < 0) {
    660661                vfs_node_put(node);
    661                 async_answer_0(rid, fd);
     662                ipc_answer_0(rid, fd);
    662663                return;
    663664        }
     
    679680       
    680681        /* Success! Return the new file descriptor to the client. */
    681         async_answer_1(rid, EOK, fd);
     682        ipc_answer_1(rid, EOK, fd);
    682683}
    683684
     
    689690        vfs_file_t *file = vfs_file_get(fd);
    690691        if (!file) {
    691                 async_answer_0(rid, ENOENT);
     692                ipc_answer_0(rid, ENOENT);
    692693                return;
    693694        }
     
    714715
    715716        vfs_file_put(file);
    716         async_answer_0(rid, rc);
     717        ipc_answer_0(rid, rc);
    717718}
    718719
     
    759760        vfs_file_t *file = vfs_file_get(fd);
    760761        if (!file) {
    761                 async_answer_0(rid, ENOENT);
     762                ipc_answer_0(rid, ENOENT);
    762763                return;
    763764        }
     
    765766        int ret = vfs_close_internal(file);
    766767        if (ret != EOK)
    767                 async_answer_0(rid, ret);
     768                ipc_answer_0(rid, ret);
    768769       
    769770        vfs_file_put(file);
    770771        ret = vfs_fd_free(fd);
    771         async_answer_0(rid, ret);
     772        ipc_answer_0(rid, ret);
    772773}
    773774
     
    791792        vfs_file_t *file = vfs_file_get(fd);
    792793        if (!file) {
    793                 async_answer_0(rid, ENOENT);
     794                ipc_answer_0(rid, ENOENT);
    794795                return;
    795796        }
     
    874875         * return to the client.
    875876         */
    876         async_answer_1(rid, rc, bytes);
     877        ipc_answer_1(rid, rc, bytes);
    877878}
    878879
     
    897898        vfs_file_t *file = vfs_file_get(fd);
    898899        if (!file) {
    899                 async_answer_0(rid, ENOENT);
     900                ipc_answer_0(rid, ENOENT);
    900901                return;
    901902        }
     
    910911                        fibril_mutex_unlock(&file->lock);
    911912                        vfs_file_put(file);
    912                         async_answer_1(rid, EOK, off);
     913                        ipc_answer_1(rid, EOK, off);
    913914                        return;
    914915                }
     
    918919                        fibril_mutex_unlock(&file->lock);
    919920                        vfs_file_put(file);
    920                         async_answer_0(rid, EOVERFLOW);
     921                        ipc_answer_0(rid, EOVERFLOW);
    921922                        return;
    922923                }
     
    925926                        fibril_mutex_unlock(&file->lock);
    926927                        vfs_file_put(file);
    927                         async_answer_0(rid, EOVERFLOW);
     928                        ipc_answer_0(rid, EOVERFLOW);
    928929                        return;
    929930                }
     
    934935                fibril_mutex_unlock(&file->lock);
    935936                vfs_file_put(file);
    936                 async_answer_2(rid, EOK, LOWER32(newoff),
     937                ipc_answer_2(rid, EOK, LOWER32(newoff),
    937938                    UPPER32(newoff));
    938939                return;
     
    945946                        fibril_mutex_unlock(&file->lock);
    946947                        vfs_file_put(file);
    947                         async_answer_0(rid, EOVERFLOW);
     948                        ipc_answer_0(rid, EOVERFLOW);
    948949                        return;
    949950                }
     
    953954                        fibril_mutex_unlock(&file->lock);
    954955                        vfs_file_put(file);
    955                         async_answer_0(rid, EOVERFLOW);
     956                        ipc_answer_0(rid, EOVERFLOW);
    956957                        return;
    957958                }
     
    963964                fibril_mutex_unlock(&file->lock);
    964965                vfs_file_put(file);
    965                 async_answer_2(rid, EOK, LOWER32(newoff), UPPER32(newoff));
     966                ipc_answer_2(rid, EOK, LOWER32(newoff), UPPER32(newoff));
    966967                return;
    967968        }
     
    969970        fibril_mutex_unlock(&file->lock);
    970971        vfs_file_put(file);
    971         async_answer_0(rid, EINVAL);
     972        ipc_answer_0(rid, EINVAL);
    972973}
    973974
     
    994995        vfs_file_t *file = vfs_file_get(fd);
    995996        if (!file) {
    996                 async_answer_0(rid, ENOENT);
     997                ipc_answer_0(rid, ENOENT);
    997998                return;
    998999        }
     
    10081009        fibril_mutex_unlock(&file->lock);
    10091010        vfs_file_put(file);
    1010         async_answer_0(rid, (sysarg_t)rc);
     1011        ipc_answer_0(rid, (sysarg_t)rc);
    10111012}
    10121013
     
    10181019        vfs_file_t *file = vfs_file_get(fd);
    10191020        if (!file) {
    1020                 async_answer_0(rid, ENOENT);
     1021                ipc_answer_0(rid, ENOENT);
    10211022                return;
    10221023        }
     
    10251026        if (!async_data_read_receive(&callid, NULL)) {
    10261027                vfs_file_put(file);
    1027                 async_answer_0(callid, EINVAL);
    1028                 async_answer_0(rid, EINVAL);
     1028                ipc_answer_0(callid, EINVAL);
     1029                ipc_answer_0(rid, EINVAL);
    10291030                return;
    10301031        }
     
    10371038        msg = async_send_3(fs_phone, VFS_OUT_STAT, file->node->devmap_handle,
    10381039            file->node->index, true, NULL);
    1039         async_forward_fast(callid, fs_phone, 0, 0, 0, IPC_FF_ROUTE_FROM_ME);
     1040        ipc_forward_fast(callid, fs_phone, 0, 0, 0, IPC_FF_ROUTE_FROM_ME);
    10401041        async_wait_for(msg, &rc);
    10411042        vfs_release_phone(file->node->fs_handle, fs_phone);
     
    10431044        fibril_mutex_unlock(&file->lock);
    10441045        vfs_file_put(file);
    1045         async_answer_0(rid, rc);
     1046        ipc_answer_0(rid, rc);
    10461047}
    10471048
     
    10511052        int rc = async_data_write_accept((void **) &path, true, 0, 0, 0, NULL);
    10521053        if (rc != EOK) {
    1053                 async_answer_0(rid, rc);
     1054                ipc_answer_0(rid, rc);
    10541055                return;
    10551056        }
     
    10581059        if (!async_data_read_receive(&callid, NULL)) {
    10591060                free(path);
    1060                 async_answer_0(callid, EINVAL);
    1061                 async_answer_0(rid, EINVAL);
     1061                ipc_answer_0(callid, EINVAL);
     1062                ipc_answer_0(rid, EINVAL);
    10621063                return;
    10631064        }
     
    10691070        if (rc != EOK) {
    10701071                fibril_rwlock_read_unlock(&namespace_rwlock);
    1071                 async_answer_0(callid, rc);
    1072                 async_answer_0(rid, rc);
     1072                ipc_answer_0(callid, rc);
     1073                ipc_answer_0(rid, rc);
    10731074                return;
    10741075        }
     
    10761077        if (!node) {
    10771078                fibril_rwlock_read_unlock(&namespace_rwlock);
    1078                 async_answer_0(callid, ENOMEM);
    1079                 async_answer_0(rid, ENOMEM);
     1079                ipc_answer_0(callid, ENOMEM);
     1080                ipc_answer_0(rid, ENOMEM);
    10801081                return;
    10811082        }
     
    10871088        msg = async_send_3(fs_phone, VFS_OUT_STAT, node->devmap_handle,
    10881089            node->index, false, NULL);
    1089         async_forward_fast(callid, fs_phone, 0, 0, 0, IPC_FF_ROUTE_FROM_ME);
     1090        ipc_forward_fast(callid, fs_phone, 0, 0, 0, IPC_FF_ROUTE_FROM_ME);
    10901091       
    10911092        sysarg_t rv;
     
    10931094        vfs_release_phone(node->fs_handle, fs_phone);
    10941095
    1095         async_answer_0(rid, rv);
     1096        ipc_answer_0(rid, rv);
    10961097
    10971098        vfs_node_put(node);
     
    11051106        int rc = async_data_write_accept((void **) &path, true, 0, 0, 0, NULL);
    11061107        if (rc != EOK) {
    1107                 async_answer_0(rid, rc);
     1108                ipc_answer_0(rid, rc);
    11081109                return;
    11091110        }
     
    11171118        fibril_rwlock_write_unlock(&namespace_rwlock);
    11181119        free(path);
    1119         async_answer_0(rid, rc);
     1120        ipc_answer_0(rid, rc);
    11201121}
    11211122
     
    11271128        int rc = async_data_write_accept((void **) &path, true, 0, 0, 0, NULL);
    11281129        if (rc != EOK) {
    1129                 async_answer_0(rid, rc);
     1130                ipc_answer_0(rid, rc);
    11301131                return;
    11311132        }
     
    11381139        if (rc != EOK) {
    11391140                fibril_rwlock_write_unlock(&namespace_rwlock);
    1140                 async_answer_0(rid, rc);
     1141                ipc_answer_0(rid, rc);
    11411142                return;
    11421143        }
     
    11531154        fibril_rwlock_write_unlock(&namespace_rwlock);
    11541155        vfs_node_put(node);
    1155         async_answer_0(rid, EOK);
     1156        ipc_answer_0(rid, EOK);
    11561157}
    11571158
     
    11621163        int rc = async_data_write_accept((void **) &old, true, 0, 0, 0, NULL);
    11631164        if (rc != EOK) {
    1164                 async_answer_0(rid, rc);
     1165                ipc_answer_0(rid, rc);
    11651166                return;
    11661167        }
     
    11711172        if (rc != EOK) {
    11721173                free(old);
    1173                 async_answer_0(rid, rc);
     1174                ipc_answer_0(rid, rc);
    11741175                return;
    11751176        }
     
    11811182       
    11821183        if ((!oldc) || (!newc)) {
    1183                 async_answer_0(rid, EINVAL);
     1184                ipc_answer_0(rid, EINVAL);
    11841185                free(old);
    11851186                free(new);
     
    12001201                 * - oldc and newc are equal.
    12011202                 */
    1202                 async_answer_0(rid, EINVAL);
     1203                ipc_answer_0(rid, EINVAL);
    12031204                free(old);
    12041205                free(new);
     
    12151216        if (rc != EOK) {
    12161217                fibril_rwlock_write_unlock(&namespace_rwlock);
    1217                 async_answer_0(rid, rc);
     1218                ipc_answer_0(rid, rc);
    12181219                free(old);
    12191220                free(new);
     
    12241225        if (!old_node) {
    12251226                fibril_rwlock_write_unlock(&namespace_rwlock);
    1226                 async_answer_0(rid, ENOMEM);
     1227                ipc_answer_0(rid, ENOMEM);
    12271228                free(old);
    12281229                free(new);
     
    12341235        if (!parentc) {
    12351236                fibril_rwlock_write_unlock(&namespace_rwlock);
    1236                 async_answer_0(rid, rc);
     1237                ipc_answer_0(rid, rc);
    12371238                free(old);
    12381239                free(new);
     
    12511252        if (rc != EOK) {
    12521253                fibril_rwlock_write_unlock(&namespace_rwlock);
    1253                 async_answer_0(rid, rc);
     1254                ipc_answer_0(rid, rc);
    12541255                free(old);
    12551256                free(new);
     
    12611262            (old_node->devmap_handle != new_par_lr.triplet.devmap_handle)) {
    12621263                fibril_rwlock_write_unlock(&namespace_rwlock);
    1263                 async_answer_0(rid, EXDEV);     /* different file systems */
     1264                ipc_answer_0(rid, EXDEV);       /* different file systems */
    12641265                free(old);
    12651266                free(new);
     
    12791280                if (!new_node) {
    12801281                        fibril_rwlock_write_unlock(&namespace_rwlock);
    1281                         async_answer_0(rid, ENOMEM);
     1282                        ipc_answer_0(rid, ENOMEM);
    12821283                        free(old);
    12831284                        free(new);
     
    12901291        default:
    12911292                fibril_rwlock_write_unlock(&namespace_rwlock);
    1292                 async_answer_0(rid, ENOTEMPTY);
     1293                ipc_answer_0(rid, ENOTEMPTY);
    12931294                free(old);
    12941295                free(new);
     
    13021303                if (new_node)
    13031304                        vfs_node_put(new_node);
    1304                 async_answer_0(rid, rc);
     1305                ipc_answer_0(rid, rc);
    13051306                free(old);
    13061307                free(new);
     
    13191320                if (new_node)
    13201321                        vfs_node_put(new_node);
    1321                 async_answer_0(rid, rc);
     1322                ipc_answer_0(rid, rc);
    13221323                free(old);
    13231324                free(new);
     
    13361337        free(old);
    13371338        free(new);
    1338         async_answer_0(rid, EOK);
     1339        ipc_answer_0(rid, EOK);
    13391340}
    13401341
     
    13461347        /* If the file descriptors are the same, do nothing. */
    13471348        if (oldfd == newfd) {
    1348                 async_answer_1(rid, EOK, newfd);
     1349                ipc_answer_1(rid, EOK, newfd);
    13491350                return;
    13501351        }
     
    13531354        vfs_file_t *oldfile = vfs_file_get(oldfd);
    13541355        if (!oldfile) {
    1355                 async_answer_0(rid, EBADF);
     1356                ipc_answer_0(rid, EBADF);
    13561357                return;
    13571358        }
     
    13721373                        vfs_file_put(oldfile);
    13731374                        vfs_file_put(newfile);
    1374                         async_answer_0(rid, ret);
     1375                        ipc_answer_0(rid, ret);
    13751376                        return;
    13761377                }
     
    13811382                        vfs_file_put(oldfile);
    13821383                        vfs_file_put(newfile);
    1383                         async_answer_0(rid, ret);
     1384                        ipc_answer_0(rid, ret);
    13841385                        return;
    13851386                }
     
    13931394       
    13941395        if (ret != EOK)
    1395                 async_answer_0(rid, ret);
     1396                ipc_answer_0(rid, ret);
    13961397        else
    1397                 async_answer_1(rid, EOK, newfd);
     1398                ipc_answer_1(rid, EOK, newfd);
    13981399}
    13991400
Note: See TracChangeset for help on using the changeset viewer.