Changes in uspace/app/sysinst/futil.c [f77c1c9:8d2dd7f2] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/sysinst/futil.c
rf77c1c9 r8d2dd7f2 57 57 { 58 58 int sf, df; 59 s ize_t nr, nw;59 ssize_t nr, nw; 60 60 int rc; 61 61 aoff64_t posr = 0, posw = 0; … … 63 63 printf("Copy '%s' to '%s'.\n", srcp, destp); 64 64 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) 67 67 return EIO; 68 68 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) 71 71 return EIO; 72 72 73 73 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); 77 75 if (nr == 0) 78 76 break; 77 if (nr < 0) 78 return EIO; 79 79 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); 85 84 86 85 (void) vfs_put(sf); 87 86 88 87 rc = vfs_put(df); 89 if (rc != EOK)88 if (rc < 0) 90 89 return EIO; 91 90 92 91 return EOK; 93 error:94 vfs_put(sf);95 vfs_put(df);96 return rc;97 92 } 98 93 … … 161 156 { 162 157 int sf; 163 size_t nr; 164 int rc; 158 ssize_t nr; 165 159 size_t fsize; 166 160 char *data; 167 161 struct stat st; 168 162 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) 171 165 return ENOENT; 172 166 … … 174 168 vfs_put(sf); 175 169 return EIO; 176 } 170 } 177 171 178 172 fsize = st.size; … … 184 178 } 185 179 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) { 188 182 vfs_put(sf); 189 183 free(data);
Note:
See TracChangeset
for help on using the changeset viewer.