Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/sysinst/futil.c

    rf77c1c9 r8d2dd7f2  
    5757{
    5858        int sf, df;
    59         size_t nr, nw;
     59        ssize_t nr, nw;
    6060        int rc;
    6161        aoff64_t posr = 0, posw = 0;
     
    6363        printf("Copy '%s' to '%s'.\n", srcp, destp);
    6464
    65         rc = vfs_lookup_open(srcp, WALK_REGULAR, MODE_READ, &sf);
    66         if (rc != EOK)
     65        sf = vfs_lookup_open(srcp, WALK_REGULAR, MODE_READ);
     66        if (sf < 0)
    6767                return EIO;
    6868
    69         rc = vfs_lookup_open(destp, WALK_REGULAR | WALK_MAY_CREATE, MODE_WRITE, &df);
    70         if (rc != EOK)
     69        df = vfs_lookup_open(destp, WALK_REGULAR | WALK_MAY_CREATE, MODE_WRITE);
     70        if (df < 0)
    7171                return EIO;
    7272
    7373        do {
    74                 rc = vfs_read(sf, &posr, buf, BUF_SIZE, &nr);
    75                 if (rc != EOK)
    76                         goto error;
     74                nr = vfs_read(sf, &posr, buf, BUF_SIZE);
    7775                if (nr == 0)
    7876                        break;
     77                if (nr < 0)
     78                        return EIO;
    7979
    80                 rc= vfs_write(df, &posw, buf, nr, &nw);
    81                 if (rc != EOK)
    82                         goto error;
    83 
    84         } while (nr == BUF_SIZE);
     80                nw = vfs_write(df, &posw, buf, nr);
     81                if (nw <= 0)
     82                        return EIO;
     83        } while (true);
    8584
    8685        (void) vfs_put(sf);
    8786
    8887        rc = vfs_put(df);
    89         if (rc != EOK)
     88        if (rc < 0)
    9089                return EIO;
    9190
    9291        return EOK;
    93 error:
    94         vfs_put(sf);
    95         vfs_put(df);
    96         return rc;
    9792}
    9893
     
    161156{
    162157        int sf;
    163         size_t nr;
    164         int rc;
     158        ssize_t nr;
    165159        size_t fsize;
    166160        char *data;
    167161        struct stat st;
    168162
    169         rc = vfs_lookup_open(srcp, WALK_REGULAR, MODE_READ, &sf);
    170         if (rc != EOK)
     163        sf = vfs_lookup_open(srcp, WALK_REGULAR, MODE_READ);
     164        if (sf < 0)
    171165                return ENOENT;
    172166
     
    174168                vfs_put(sf);
    175169                return EIO;
    176         }
     170        }       
    177171
    178172        fsize = st.size;
     
    184178        }
    185179
    186         rc = vfs_read(sf, (aoff64_t []) { 0 }, data, fsize, &nr);
    187         if (rc != EOK || nr != fsize) {
     180        nr = vfs_read(sf, (aoff64_t []) { 0 }, data, fsize);
     181        if (nr != (ssize_t)fsize) {
    188182                vfs_put(sf);
    189183                free(data);
Note: See TracChangeset for help on using the changeset viewer.