Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset 7eb0fed8 in mainline


Ignore:
Timestamp:
2011-07-26T19:43:37Z (10 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master
Children:
5bb9907
Parents:
3fb0fec
Message:

Fix VFS_OUT_MOUNT and VFS_OUT_MOUNTED with respect to 64-bit file sizes.

Location:
uspace
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/fs/libfs.c

    r3fb0fec r7eb0fed8  
    9393        rc = vfs_out_ops->mounted(devmap_handle, opts, &index, &size, &lnkcnt);
    9494
    95         if (rc == EOK)  // FIXME: size is 64-bit
    96                 async_answer_3(rid, EOK, index, size, lnkcnt);
     95        if (rc == EOK)
     96                async_answer_4(rid, EOK, index, LOWER32(size), UPPER32(size),
     97                    lnkcnt);
    9798        else
    9899                async_answer_0(rid, rc);
     
    434435         * Do not release the FS node so that it stays in memory.
    435436         */
    436         async_answer_3(rid, rc, IPC_GET_ARG1(answer), IPC_GET_ARG2(answer),
    437             IPC_GET_ARG3(answer));
     437        async_answer_4(rid, rc, IPC_GET_ARG1(answer), IPC_GET_ARG2(answer),
     438            IPC_GET_ARG3(answer), IPC_GET_ARG4(answer));
    438439}
    439440
  • uspace/srv/vfs/vfs_ops.c

    r3fb0fec r7eb0fed8  
    7676        vfs_node_t *mr_node;
    7777        fs_index_t rindex;
    78         size_t rsize;
     78        aoff64_t rsize;
    7979        unsigned rlnkcnt;
    8080        async_exch_t *exch;
     
    146146
    147147                        rindex = (fs_index_t) IPC_GET_ARG1(answer);
    148                         rsize = (size_t) IPC_GET_ARG2(answer);
    149                         rlnkcnt = (unsigned) IPC_GET_ARG3(answer);
     148                        rsize = (aoff64_t) MERGE_LOUP32(IPC_GET_ARG2(answer), IPC_GET_ARG3(answer));
     149                        rlnkcnt = (unsigned) IPC_GET_ARG4(answer);
    150150                       
    151151                        mr_res.triplet.fs_handle = fs_handle;
     
    229229        if (rc == EOK) {
    230230                rindex = (fs_index_t) IPC_GET_ARG1(answer);
    231                 rsize = (size_t) IPC_GET_ARG2(answer);
    232                 rlnkcnt = (unsigned) IPC_GET_ARG3(answer);
     231                rsize = (aoff64_t) MERGE_LOUP32(IPC_GET_ARG2(answer),
     232                    IPC_GET_ARG3(answer));
     233                rlnkcnt = (unsigned) IPC_GET_ARG4(answer);
    233234               
    234235                mr_res.triplet.fs_handle = fs_handle;
Note: See TracChangeset for help on using the changeset viewer.