_again: lio = read(fd, pblk, lrem);
if (lio == 0) stop = YES;
if (lio != NOSIZE) ldone += lio;
_again: lio = read(fd, pblk, lrem);
if (lio == 0) stop = YES;
if (lio != NOSIZE) ldone += lio;
switch (error_action) {
case TFC_ERRACT_CONT: xerror(YES, NO, NO, "skeinfd: %d", fd); goto _again; break;
case TFC_ERRACT_SYNC:
switch (error_action) {
case TFC_ERRACT_CONT: xerror(YES, NO, NO, "skeinfd: %d", fd); goto _again; break;
case TFC_ERRACT_SYNC:
xerror(YES, NO, NO, "skeinfd: %d", fd);
lio = lrem = ldone = lblock;
total += lio;
memset(skblk, 0, lio);
xerror(YES, NO, NO, "skeinfd: %d", fd);
lio = lrem = ldone = lblock;
total += lio;
memset(skblk, 0, lio);
- lseek(fd, lio, SEEK_CUR);
+ if (rdpos == NOFSIZE) lseek(fd, lio, SEEK_CUR);
+ else lseek(fd, rdpos + lio, SEEK_SET);